CreateFiber

The CreateFiber function allocates a fiber object, assigns it a stack, and sets up execution to begin at the specified start address, typically the fiber function. This function does not schedule the fiber.

LPVOID CreateFiber(
  DWORD dwStackSize,  // initial thread stack size, in bytes
  LPFIBER_START_ROUTINE lpStartAddress,
                      // pointer to fiber function
  LPVOID lpParameter  // argument for new fiber
);
 

Parameters

dwStackSize
Specifies the size, in bytes, of the stack for the new fiber. If zero is specified, the stack size defaults to the same size as that of the main thread. The function fails if it cannot commit dwStackSize bytes. Note that the system increases the stack size dynamically, if necessary. For more information, see Thread Stack Size.
lpStartAddress
Pointer to the application-defined function of type LPFIBER_START_ROUTINE to be executed by the fiber and represents the starting address of the fiber. Execution of the newly created fiber does not begin until another fiber calls the SwitchToFiber function with this address. For more information of the fiber callback function, see FiberProc.
lpParameter
Specifies a single argument that is passed to the fiber. This value can be retrieved by the fiber using the GetFiberData function.

Return Values

If the function succeeds, the return value is the address of the fiber.

If the function fails, the return value is NULL. To get extended error information, call GetLastError.

Remarks

Before a thread can schedule a fiber using the SwitchToFiber function, it must call the ConvertThreadToFiber function so there is a fiber associated with the thread.

QuickInfo

  Windows NT: Requires version 3.51 SP3 or later.
  Windows: Requires Windows 98 or later.
  Windows CE: Unsupported.
  Header: Declared in winbase.h.
  Import Library: Use kernel32.lib.

See Also

Processes and Threads Overview, Process and Thread Functions, ConvertThreadToFiber, FiberProc, GetFiberData, SwitchToFiber