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. The stack is freed when the thread
terminates.
lpStartAddress
Points to the
application-supplied function to be executed by the fiber and represents the
starting address of the fiber. The function accepts a single argument and does
not return a value. Execution of the newly created fiber does not begin until
another fiber calls the SwitchToFiber
lpParameter
Specifies a
single argument that is passed to the fiber. This value can be retrieved by the
fiber using the GetFiberData
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
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 );
See Also