Поделиться через


Функция 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 рекомендуется использовать KeExpandKernelStackAndCalloutEx подпрограммы вместо KeExpandKernelStackAndCallout. KeExpandKernelStackAndCalloutEx аналогичен KeExpandKernelStackAndCallout, но имеет дополнительные параметры и может вызываться в IRQL <= DISPATCH_LEVEL.

Вызывающий поток не должен вызывать подпрограмму PsTerminateSystemThread, пока не возвращается подпрограмма expandedStackC all. psTerminateSystemThread проверяет, активна ли подпрограмма ExpandedStackCall и, если это так, вызывает проверку ошибок.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows Server 2003 на процессорах x64 и начиная с Windows Vista на всех процессорах.
целевая платформа Всеобщий
заголовка ntddk.h (include Ntddk.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

См. также

ExpandedStackCall

KeExpandKernelStackAndCalloutEx

PsTerminateSystemThread