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