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


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

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

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

Никакой

Замечания

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000
целевая платформа Всеобщий
заголовка ntifs.h (include FltKernel.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

См. также

FsRtlPostPagingFileStackOverflow

IoGetRemainingStackSize

IoQueueWorkItem

KeInitializeEvent