Share via


Funzione SetThreadStackGuarantee (processthreadsapi.h)

Imposta le dimensioni minime dello stack associato al thread chiamante o alla fibra che saranno disponibili durante qualsiasi eccezione di overflow dello stack. Questo è utile per gestire le eccezioni di overflow dello stack; l'applicazione può usare in modo sicuro il numero specificato di byte durante la gestione delle eccezioni.

Sintassi

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

Parametri

[in, out] StackSizeInBytes

Dimensioni dello stack, in byte. In caso di ritorno, questo valore viene impostato sulle dimensioni dello stack precedente, in byte.

Se questo parametro è 0 (zero), la funzione ha esito positivo e il parametro contiene le dimensioni dello stack corrente.

Se la dimensione specificata è minore della dimensione corrente, la funzione ha esito positivo ma ignora questa richiesta. Pertanto, non è possibile usare questa funzione per ridurre le dimensioni dello stack.

Questo valore non può essere maggiore delle dimensioni dello stack riservato.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è 0 (zero). Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Se la funzione ha esito positivo, l'applicazione può gestire le possibili eccezioni EXCEPTION_STACK_OVERFLOW usando la gestione delle eccezioni strutturate. Per riprendere l'esecuzione dopo aver gestito un overflow dello stack, è necessario eseguire determinati passaggi di ripristino. Se si usa il compilatore Microsoft C/C++, chiamare la funzione _resetstkoflw . Se si usa un altro compilatore, vedere la documentazione del compilatore per informazioni sul ripristino da overflow dello stack.

Per impostare la garanzia dello stack per una fibra, è prima necessario chiamare la funzione SwitchToFiber per eseguire la fibra. Dopo aver impostato la garanzia per questa fibra, viene usata dalla fibra indipendentemente dal thread che esegue la fibra.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista, Windows XP Professional x64 Edition [solo app desktop]
Server minimo supportato Windows Server 2008, Windows Server 2003 con SP1 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione processthreadsapi.h (includere Windows.h in Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Funzioni di processi e thread

Dimensioni dello stack di thread

Thread

API Vertdll disponibili nelle enclave VBS