KeExpandKernelStackAndCallout 函式 (ntddk.h)
KeExpandKernelStackAndCallout 例程會呼叫具有保證堆疊空間數量的例程。
語法
NTSTATUS
KeExpandKernelStackAndCallout (
_In_ PEXPAND_STACK_CALLOUT Callout,
_In_opt_ PVOID Parameter,
_In_ SIZE_T Size
);
參數
[in] Callout
ExpandedStackCall 例程的指標。
[in, optional] Parameter
指定要傳遞至 ExpandedStackCall 例程的參數。
[in] Size
指定要提供給 ExpandedStackCall 例程的堆疊位元組數目。 這個值必須夠大,才能容納 ExpandedStackCall 例程的堆疊使用量,以及此例程可能進行的任何呼叫。 此值不得超過MAXIMUM_EXPANSION_SIZE。
傳回值
如果堆疊配置成功且已呼叫圖說文字,則傳回成功。 否則,會傳回失敗狀態。
備註
KeExpandKernelStackAndCallout 會依 Size 位元節擴充核心堆疊,以供 ExpandStackCall 例程使用。 如果堆疊上沒有足夠的可用空間, KeExpandKernelStackAndCallout 會配置新的核心堆疊區段。 然後,例程會呼叫 ExpandedStackCall 例程。
在 Windows 7、Windows Server 2008 R2 和更新版本的 Windows 中,請考慮使用 KeExpandKernelStackAndCalloutEx 例程,而不是 KeExpandKernelStackAndCallout。 KeExpandKernelStackAndCalloutEx 類似於 KeExpandKernelStackAndCallout ,但有額外的參數,而且可以在 IRQL <= DISPATCH_LEVEL呼叫。
呼叫線程必須等到線程的 ExpandedStackCall 例程傳回之後,才呼叫 PsTerminateSystemThread 例程。 PsTerminateSystemThread 會檢查,以判斷 ExpandedStackCall 例程是否仍在使用中,如果為 ,則會導致錯誤檢查。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 x64 型處理器上的 Windows Server 2003 開始,並從所有處理器的 Windows Vista 開始提供。 |
目標平台 | Universal |
標頭 | ntddk.h (包含 Ntddk.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | <= APC_LEVEL |