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은 ExpandedStackCall 루틴에서 사용할 커널 스택을 크기 바이트별로 확장합니다. 스택에 사용할 수 있는 공간이 충분하지 않은 경우 KeExpandKernelStackAndCallout 은 새 커널 스택 세그먼트를 할당합니다. 그런 다음 루틴은 ExpandedStackCall 루틴을 호출합니다.
Windows 7, Windows Server 2008 R2 이상 버전의 Windows에서는 KeExpandKernelStackAndCallout 대신 KeExpandKernelStackAndCalloutEx 루틴을 사용하는 것이 좋습니다. KeExpandKernelStackAndCalloutEx 는 KeExpandKernelStackAndCallout 과 유사하지만 추가 매개 변수가 있으며 IRQL <= DISPATCH_LEVEL 호출할 수 있습니다.
호출 스레드는 스레드의 ExpandedStackCall 루틴이 반환될 때까지 PsTerminateSystemThread 루틴을 호출해서는 안 됩니다. PsTerminateSystemThread는 ExpandedStackCall 루틴이 여전히 활성 상태인지 확인하고, 있는 경우 버그 검사 발생합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | x64 기반 프로세서의 Windows Server 2003부터 모든 프로세서에서 Windows Vista부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | ntddk.h(Ntddk.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |