Функция FltCompletePendedPreOperation (fltkernel.h)
FltCompletePendedPreOperation возобновляет обработку операции ввода-вывода, которая была выполнена в подпрограмме обратного вызова драйвера мини-фильтра (PFLT_PRE_OPERATION_CALLBACK).
Синтаксис
VOID FLTAPI FltCompletePendedPreOperation(
PFLT_CALLBACK_DATA CallbackData,
[in] FLT_PREOP_CALLBACK_STATUS CallbackStatus,
[in, optional] PVOID Context
);
Параметры
CallbackData
Указатель на структуру данных обратного вызова (FLT_CALLBACK_DATA) для операции ввода-вывода. Этот параметр является обязательным и не может иметь значение NULL.
[in] CallbackStatus
Значение состояния, возвращаемое драйвером минифильтра для этой операции ввода-вывода. Не может быть FLT_PREOP_PENDING, FLT_PREOP_SYNCHRONIZE или FLT_PREOP_DISALLOW_FASTIO. Должно быть одним из следующих FLT_PREOP_CALLBACK_STATUS значений. Дополнительные сведения о влиянии этих значений см. в разделе Примечания справочной записи для PFLT_PRE_OPERATION_CALLBACK.
Значение | Значение |
---|---|
FLT_PREOP_COMPLETE | Драйвер минифильтра завершает операцию ввода-вывода. Диспетчер фильтров не отправляет операции ввода-вывода в драйверы минифильтра под вызывающим элементом или в файловую систему. Диспетчер фильтров вызывает только процедуры обратного вызова после операции (PFLT_POST_OPERATION_CALLBACK) драйверов минифильтра над вызывающим. |
FLT_PREOP_SUCCESS_NO_CALLBACK | Драйвер минифильтра возвращает управление операцией ввода-вывода диспетчеру фильтров. Диспетчер фильтров не вызывает соответствующий обратный вызов после операции, если он существует, во время завершения ввода-вывода. |
FLT_PREOP_SUCCESS_WITH_CALLBACK | Драйвер минифильтра возвращает управление операцией ввода-вывода диспетчеру фильтров. Диспетчер фильтров вызывает соответствующий обратный вызов после операции во время завершения ввода-вывода. |
[in, optional] Context
Если для параметра CallbackStatus указан FLT_PREOP_SUCCESS_WITH_CALLBACK, этот параметр является необязательным указателем контекста, передаваемым в соответствующую подпрограмму обратного вызова после операции. Если для параметра CallbackStatus указан FLT_PREOP_COMPLETE или FLT_PREOP_SUCCESS_NO_CALLBACK, этот параметр должен иметь значение NULL.
Возвращаемое значение
None
Remarks
Когда подпрограмма обратного вызова драйвера минифильтра (PFLT_PRE_OPERATION_CALLBACK) отправляет операцию ввода-вывода в рабочую очередь и возвращает FLT_PREOP_PENDING, диспетчер фильтров прекращает ее обработку. Когда операция в конечном итоге выведена из очереди и обработана, драйвер мини-фильтра должен вызвать FltCompletePendedPreOperation , чтобы вернуть операцию в диспетчер фильтров, который затем возобновляет обработку в соответствии с указанием CallbackStatus, указанного драйвером мини-фильтра.
Если параметр CallbackStatus имеет значение FLT_PREOP_COMPLETE, fltCompletePendedPreOperation можно вызвать по адресу IRQL <= DISPATCH_LEVEL. В противном случае вызывающие функции FltCompletePendedPreOperation должны выполняться в IRQL <= APC_LEVEL.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | fltkernel.h (включая Fltkernel.h) |
Библиотека | FltMgr.lib |
IRQL | См. раздел "Примечания". |