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 초과할 수 없습니다.

반환 값

스택 할당이 성공하고 콜아웃이 호출된 경우 성공을 반환합니다. 그렇지 않으면 실패 상태 반환합니다.

설명

KeExpandKernelStackAndCalloutExpandedStackCall 루틴에서 사용할 커널 스택을 크기 바이트별로 확장합니다. 스택에 사용할 수 있는 공간이 충분하지 않은 경우 KeExpandKernelStackAndCallout 은 새 커널 스택 세그먼트를 할당합니다. 그런 다음 루틴은 ExpandedStackCall 루틴을 호출합니다.

Windows 7, Windows Server 2008 R2 이상 버전의 Windows에서는 KeExpandKernelStackAndCallout 대신 KeExpandKernelStackAndCalloutEx 루틴을 사용하는 것이 좋습니다. KeExpandKernelStackAndCalloutExKeExpandKernelStackAndCallout 과 유사하지만 추가 매개 변수가 있으며 IRQL <= DISPATCH_LEVEL 호출할 수 있습니다.

호출 스레드는 스레드의 ExpandedStackCall 루틴이 반환될 때까지 PsTerminateSystemThread 루틴을 호출해서는 안 됩니다. PsTerminateSystemThreadExpandedStackCall 루틴이 여전히 활성 상태인지 확인하고, 있는 경우 버그 검사 발생합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 x64 기반 프로세서의 Windows Server 2003부터 모든 프로세서에서 Windows Vista부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 ntddk.h(Ntddk.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

추가 정보

ExpandedStackCall

KeExpandKernelStackAndCalloutEx

PsTerminateSystemThread