Función CreateFiber (winbase.h)
Asigna un objeto de fibra, lo asigna a una pila y configura la ejecución para comenzar en la dirección de inicio especificada, normalmente la función de fibra. Esta función no programa la fibra.
Para especificar un tamaño de pila de confirmación y reserva, use la función CreateFiberEx .
Sintaxis
LPVOID CreateFiber(
[in] SIZE_T dwStackSize,
[in] LPFIBER_START_ROUTINE lpStartAddress,
[in, optional] LPVOID lpParameter
);
Parámetros
[in] dwStackSize
Tamaño confirmado inicial de la pila, en bytes. Si este parámetro es cero, la nueva fibra usa el tamaño predeterminado de la pila de confirmación para el ejecutable. Para obtener más información, consulte Tamaño de pila de subprocesos.
[in] lpStartAddress
Puntero a la función definida por la aplicación que ejecutará la fibra y representa la dirección inicial de la fibra. La ejecución de la fibra recién creada no comienza hasta que otra fibra llama a la función SwitchToFiber con esta dirección. Para obtener más información sobre la función de devolución de llamada de fibra, consulte FiberProc.
[in, optional] lpParameter
Puntero a una variable que se pasa a la fibra. La fibra puede recuperar estos datos mediante la macro GetFiberData .
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es la dirección de la fibra.
Si la función no se realiza correctamente, el valor devuelto es NULL. Para obtener información de error extendida, llame a GetLastError.
Comentarios
El número de fibras que puede crear un proceso está limitado por la memoria virtual disponible. Por ejemplo, si crea cada fibra con 1 megabyte de espacio de pila reservado, puede crear como máximo 2028 fibras. Si reduce el tamaño de pila predeterminado mediante la instrucción STACKSIZE en el archivo de definición de módulo (.def) o mediante CreateFiberEx, puede crear más fibras. Sin embargo, la aplicación tendrá un mejor rendimiento si usa una estrategia alternativa para procesar solicitudes en lugar de crear un gran número de fibras.
Para que un subproceso pueda programar una fibra mediante la función SwitchToFiber , debe llamar a la función ConvertThreadToFiber para que haya una fibra asociada al subproceso.
Para compilar una aplicación que use esta función, defina _WIN32_WINNT como 0x0400 o posterior. Para obtener más información, vea Uso de los encabezados de Windows.
Ejemplos
Para obtener un ejemplo, consulte Uso de fibras.
Requisitos
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winbase.h (incluya Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |