Función CreateFiberEx (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.

Sintaxis

LPVOID CreateFiberEx(
  [in]           SIZE_T                dwStackCommitSize,
  [in]           SIZE_T                dwStackReserveSize,
  [in]           DWORD                 dwFlags,
  [in]           LPFIBER_START_ROUTINE lpStartAddress,
  [in, optional] LPVOID                lpParameter
);

Parámetros

[in] dwStackCommitSize

Tamaño de confirmación 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] dwStackReserveSize

Tamaño de reserva inicial de la pila, en bytes. Si este parámetro es cero, la nueva fibra usa el tamaño de pila reservado predeterminado para el ejecutable. Para obtener más información, consulte Tamaño de pila de subprocesos.

[in] dwFlags

Si este parámetro es cero, el estado de punto flotante en los sistemas x86 no se cambia y los datos se pueden dañar si una fibra usa aritmética de punto flotante. Si este parámetro es FIBER_FLAG_FLOAT_SWITCH, el estado de punto flotante se cambia para la fibra.

Windows XP: No se admite la marca FIBER_FLAG_FLOAT_SWITCH .

[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. De forma predeterminada, cada fibra tiene 1 megabyte de espacio de pila reservado. Por lo tanto, puede crear como máximo 2028 fibras. Si reduce el tamaño de pila predeterminado, puede crear más fibras. Sin embargo, la aplicación tendrá un mejor rendimiento si usa una estrategia alternativa para procesar solicitudes.

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.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winbase.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

ConvertThreadToFiber

FiberProc

Fibras

GetFiberData

Funciones de proceso y subproceso

SwitchToFiber