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