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 |
); |
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.
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.
The fiber function is of type FIBER_START_ROUTINE. It accepts a single value of type PVOID (fiber data) and does not return a value. The prototype for this function is as follows:
VOID WINAPI FiberFunc( PVOID lpParameter );