CreateFiberEx-Funktion (winbase.h)

Weist ein Faserobjekt zu, weist ihm einen Stapel zu und richtet die Ausführung so ein, dass die Ausführung an der angegebenen Startadresse beginnt, in der Regel die Fiberfunktion. Diese Funktion plant die Faser nicht.

Syntax

LPVOID CreateFiberEx(
  [in]           SIZE_T                dwStackCommitSize,
  [in]           SIZE_T                dwStackReserveSize,
  [in]           DWORD                 dwFlags,
  [in]           LPFIBER_START_ROUTINE lpStartAddress,
  [in, optional] LPVOID                lpParameter
);

Parameter

[in] dwStackCommitSize

Die anfängliche Commitgröße des Stapels in Bytes. Wenn dieser Parameter 0 ist, verwendet die neue Faser die standardmäßige Commitstapelgröße für die ausführbare Datei. Weitere Informationen finden Sie unter Threadstapelgröße.

[in] dwStackReserveSize

Die anfängliche Reservegröße des Stapels in Bytes. Wenn dieser Parameter 0 ist, verwendet die neue Faser die standardmäßige reservierte Stapelgröße für die ausführbare Datei. Weitere Informationen finden Sie unter Threadstapelgröße.

[in] dwFlags

Wenn dieser Parameter 0 ist, wird der Gleitkommazustand auf x86-Systemen nicht umgeschaltet, und Daten können beschädigt werden, wenn eine Faser Gleitkommaarithmetik verwendet. Wenn dieser Parameter FIBER_FLAG_FLOAT_SWITCH ist, wird der Gleitkommazustand für die Faser umgestellt.

Windows XP: Das FIBER_FLAG_FLOAT_SWITCH-Flag wird nicht unterstützt.

[in] lpStartAddress

Ein Zeiger auf die anwendungsdefinierte Funktion, die von der Fasern ausgeführt werden soll, und stellt die Startadresse der Faser dar. Die Ausführung der neu erstellten Faser beginnt erst, wenn eine andere Faser die SwitchToFiber-Funktion mit dieser Adresse aufruft. Weitere Informationen zur Fiber-Rückruffunktion finden Sie unter FiberProc.

[in, optional] lpParameter

Ein Zeiger auf eine Variable, die an die Faser übergeben wird. Die Faser kann diese Daten mithilfe des Makros GetFiberData abrufen.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert die Adresse der Faser.

Wenn bei der Funktion ein Fehler auftritt, ist der Rückgabewert NULL. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Die Anzahl der Fasern, die ein Prozess erstellen kann, wird durch den verfügbaren virtuellen Arbeitsspeicher begrenzt. Standardmäßig verfügt jede Faser über 1 Megabyte reservierten Stapelspeicher. Daher können Sie maximal 2028 Fasern erstellen. Wenn Sie die Standardstapelgröße reduzieren, können Sie mehr Fasern erstellen. Ihre Anwendung hat jedoch eine bessere Leistung, wenn Sie eine alternative Strategie für die Verarbeitung von Anforderungen verwenden.

Bevor ein Thread eine Faser mit der SwitchToFiber-Funktion planen kann, muss er die ConvertThreadToFiber-Funktion aufrufen, damit dem Thread eine Faser zugeordnet ist.

Um eine Anwendung zu kompilieren, die diese Funktion verwendet, definieren Sie _WIN32_WINNT als 0x0400 oder höher. Weitere Informationen finden Sie unter Verwenden der Windows-Header.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winbase.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

ConvertThreadToFiber

FiberProc

Fasern

GetFiberData

Prozess- und Threadfunktionen

SwitchToFiber