Compartilhar via


Função CreateFiber (winbase.h)

Aloca um objeto de fibra, atribui-lhe uma pilha 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.

Para especificar um tamanho de pilha de confirmação e reserva, use a função CreateFiberEx .

Sintaxe

LPVOID CreateFiber(
  [in]           SIZE_T                dwStackSize,
  [in]           LPFIBER_START_ROUTINE lpStartAddress,
  [in, optional] LPVOID                lpParameter
);

Parâmetros

[in] dwStackSize

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

[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 .

Valor retornado

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 exemplo, se você criar cada fibra com 1 megabyte de espaço de pilha reservado, poderá criar no máximo 2028 fibras. Se você reduzir o tamanho da pilha padrão usando a instrução STACKSIZE no arquivo de definição de módulo (.def) ou usando CreateFiberEx, poderá criar mais fibras. No entanto, seu aplicativo terá melhor desempenho se você usar uma estratégia alternativa para processar solicitações em vez de criar um número tão grande de fibras.

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.

Exemplos

Para obter um exemplo, consulte Usando fibras.

Requisitos

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

Confira também

ConvertThreadToFiber

CreateFiberEx

FiberProc

Fibras

GetFiberData

Funções de thread e processo

SwitchToFiber