Функция 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 |