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


Функция 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 , пока не будет возвращена подпрограмма ExpandedStackCall потока. PsTerminateSystemThread проверяет, активна ли подпрограмма ExpandedStackCall и, если она есть, вызывает ошибку проверка.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows Server 2003 на 64-разрядных процессорах и начиная с Windows Vista на всех процессорах.
Целевая платформа Универсальное
Верхняя часть ntddk.h (включая Ntddk.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

См. также раздел

ExpandedStackCall

KeExpandKernelStackAndCalloutEx

PsTerminateSystemThread