Platform SDK: DLLs, Processes, and Threads

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 stack size
  LPFIBER_START_ROUTINE lpStartAddress, // fiber function
  LPVOID lpParameter                    // fiber argument
);

Parameters

dwStackSize
[in] 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
[in] 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
[in] Specifies a single argument that is passed to the fiber. This value can be retrieved by the fiber using the GetFiberData macro.

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.

Requirements

  Windows NT/2000: Requires Windows NT 3.51 SP3 or later.
  Windows 95/98: Requires Windows 98.
  Header: Declared in Winbase.h; include Windows.h.
  Library: Use Kernel32.lib.

See Also

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