Função SetThreadStackGuarantee (processthreadsapi.h)

Define o tamanho mínimo da pilha associada ao thread ou fibra de chamada que estará disponível durante quaisquer exceções de estouro de pilha. Isso é útil para lidar com exceções de estouro de pilha; o aplicativo pode usar com segurança o número especificado de bytes durante o tratamento de exceções.

Sintaxe

BOOL SetThreadStackGuarantee(
  [in, out] PULONG StackSizeInBytes
);

Parâmetros

[in, out] StackSizeInBytes

O tamanho da pilha, em bytes. No retorno, esse valor é definido como o tamanho da pilha anterior, em bytes.

Se esse parâmetro for 0 (zero), a função terá êxito e o parâmetro conterá o tamanho da pilha atual.

Se o tamanho especificado for menor que o tamanho atual, a função terá êxito, mas ignorará essa solicitação. Portanto, você não pode usar essa função para reduzir o tamanho da pilha.

Esse valor não pode ser maior que o tamanho da pilha reservada.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

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

Comentários

Se a função for bem-sucedida, o aplicativo poderá lidar com possíveis exceções EXCEPTION_STACK_OVERFLOW usando o tratamento de exceções estruturadas. Para retomar a execução depois de lidar com um estouro de pilha, você deve executar determinadas etapas de recuperação. Se você estiver usando o compilador do Microsoft C/C++, chame a função _resetstkoflw . Se você estiver usando outro compilador, consulte a documentação do compilador para obter informações sobre como se recuperar de estouros de pilha.

Para definir a garantia de pilha para uma fibra, primeiro você deve chamar a função SwitchToFiber para executar a fibra. Depois de definir a garantia para essa fibra, ela é usada pela fibra, independentemente de qual thread executa a fibra.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista, Windows XP Professional x64 Edition [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008, Windows Server 2003 com SP1 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho processthreadsapi.h (inclua Windows.h no Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Funções de thread e processo

Tamanho da pilha do thread

Threads

APIs Vertdll disponíveis em enclaves de VBS