Функция FsRtlPostStackOverflow (ntifs.h)

Подпрограмма FsRtlPostStackOverflow отправляет элемент переполнения стека в поток переполнения стека.

Синтаксис

void FsRtlPostStackOverflow(
  [in] PVOID                         Context,
  [in] PKEVENT                       Event,
  [in] PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine
);

Параметры

[in] Context

Указатель контекста, передаваемый в подпрограмму обратного вызова переполнения стека.

[in] Event

Указатель на событие уведомления, выделенное вызывающим, для передачи в подпрограмму обратного вызова переполнения стека. Должен быть инициализирован как не подписан путем вызова KeInitializeEvent.

[in] StackOverflowRoutine

Указатель на подпрограмму обратного вызова, вызываемую при обработке запроса в потоке переполнения.

Возвращаемое значение

None

Remarks

Файловая система обычно вызывает FsRtlPostStackOverflow во время операции ввода-вывода файла, когда объем оставшегося пространства стека, возвращаемого IoGetRemainingStackSize , ниже порогового значения переполнения стека файловой системы для операции. FsRtlPostStackOverflow отправляет запрос ввода-вывода в специальную очередь переполнения стека. После завершения операции ввода-вывода событие вызывающего объекта устанавливается в состояние сигнальной передачи.

Драйверы фильтров файловой системы должны использовать IoQueueWorkItem вместо FsRtlPostStackOverflow, так как IoQueueWorkItem гарантирует, что объект устройства, связанный с указанным рабочим элементом, доступен для обработки рабочего элемента.

При сбое выделения пула FsRtlPostStackOverflow вызывает исключение STATUS_INSUFFICIENT_RESOURCES. Чтобы получить контроль в случае сбоя выделения пула, драйвер должен заключить вызов FsRtlPostStackOverflow в инструкцию try-except или try-finally .

Требования

Требование Значение
Минимальная версия клиента Windows 2000
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая FltKernel.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

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

FsRtlPostPagingFileStackOverflow

IoGetRemainingStackSize

IoQueueWorkItem

KeInitializeEvent