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