Função CreateFiberEx (winbase.h)

Aloca um objeto de fibra, atribui uma pilha a ele e configura a execução para começar no endereço inicial especificado, normalmente a função de fibra. Essa função não agenda a fibra.

Sintaxe

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

O tamanho inicial da confirmação da pilha, em bytes. Se esse parâmetro for zero, a nova fibra usará o tamanho da pilha de confirmação padrão para o executável. Para obter mais informações, consulte Tamanho da pilha do thread.

[in] dwStackReserveSize

O tamanho inicial da reserva da pilha, em bytes. Se esse parâmetro for zero, a nova fibra usará o tamanho de pilha reservado padrão para o executável. Para obter mais informações, consulte Tamanho da pilha do thread.

[in] dwFlags

Se esse parâmetro for zero, o estado de ponto flutuante em sistemas x86 não será alternado e os dados poderão ser corrompidos se uma fibra usar aritmética de ponto flutuante. Se esse parâmetro for FIBER_FLAG_FLOAT_SWITCH, o estado de ponto flutuante será alternado para a fibra.

Windows XP: Não há suporte para o sinalizador FIBER_FLAG_FLOAT_SWITCH .

[in] lpStartAddress

Um ponteiro para a função definida pelo aplicativo a ser executada pela fibra e representa o endereço inicial da fibra. A execução da fibra recém-criada não começa até que outra fibra chame a função SwitchToFiber com esse endereço. Para obter mais informações sobre a função de retorno de chamada de fibra, consulte FiberProc.

[in, optional] lpParameter

Um ponteiro para uma variável que é passada para a fibra. A fibra pode recuperar esses dados usando a macro GetFiberData .

Retornar valor

Se a função for bem-sucedida, o valor retornado será o endereço da fibra.

Se a função falhar, o valor retornado será NULL. Para obter informações de erro estendidas, chame GetLastError.

Comentários

O número de fibras que um processo pode criar é limitado pela memória virtual disponível. Por padrão, cada fibra tem 1 megabyte de espaço de pilha reservado. Portanto, você pode criar no máximo 2028 fibras. Se você reduzir o tamanho da pilha padrão, poderá criar mais fibras. No entanto, seu aplicativo terá melhor desempenho se você usar uma estratégia alternativa para processar solicitações.

Antes que um thread possa agendar uma fibra usando a função SwitchToFiber , ele deve chamar a função ConvertThreadToFiber para que haja uma fibra associada ao thread.

Para compilar um aplicativo que usa essa função, defina _WIN32_WINNT como 0x0400 ou posterior. Para obter mais informações, consulte Usando os cabeçalhos do Windows.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho winbase.h (incluir Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

ConvertThreadToFiber

FiberProc

Fibras

GetFiberData

Funções de thread e processo

SwitchToFiber