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


Функция 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 См. раздел "Примечания".

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

FLT_CALLBACK_DATA

FltCbdqInitialize

FltCompletePendedPostOperation

FltQueueDeferredIoWorkItem

PFLT_PRE_OPERATION_CALLBACK