SetThreadStackGuarantee 函式 (processthreadsapi.h)
設定與呼叫線程或光纖相關聯的堆疊大小下限,此線程或光纖可在任何堆疊溢位例外狀況期間使用。 這適用於處理堆疊溢位例外狀況;應用程式可以在例外狀況處理期間安全地使用指定的位元元組數目。
語法
BOOL SetThreadStackGuarantee(
[in, out] PULONG StackSizeInBytes
);
參數
[in, out] StackSizeInBytes
堆疊的大小,以位元組為單位。 傳回時,此值會設定為前一個堆疊的大小,以位元組為單位。
如果此參數為 0 (零) ,則函式會成功,且參數包含目前堆疊的大小。
如果指定的大小小於目前的大小,函式會成功,但會忽略此要求。 因此,您無法使用此函式來減少堆疊的大小。
此值不能大於保留的堆疊大小。
傳回值
如果函式成功,則傳回非零的值。
如果函式失敗,傳回值為 0 (零) 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
如果函式成功,應用程式可以使用 結構化例外狀況處理來處理可能的EXCEPTION_STACK_OVERFLOW例外狀況。 若要在處理堆疊溢位之後繼續執行,您必須執行某些復原步驟。 如果您使用 Microsoft C/C++ 編譯程式,請呼叫 _resetstkoflw 函式。 如果您使用另一個編譯程式,請參閱編譯程序的檔,以取得從堆疊溢位復原的相關信息。
若要設定光纖的堆疊保證,您必須先呼叫 SwitchToFiber 函式來執行光纖。 設定此光纖的保證之後,不論哪一個線程執行光纖,光纖都使用此保證。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista、Windows XP Professional x64 Edition [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008、Windows Server 2003 SP1 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | processthreadsapi.h (Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |