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

另請參閱

處理序和執行緒函式

線程堆疊大小

執行緒

VBS 記憶體保護區中可用的 Vertdll API