共用方式為


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 例程,而不是 KeExpandKernelStackAndCalloutKeExpandKernelStackAndCalloutEx 類似於 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

另請參閱

ExpandedStackCall

KeExpandKernelStackAndCalloutEx

PsTerminateSystemThread