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 |