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


функция обратного вызова PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK (fltkernel.h)

Драйвер минифильтра может зарегистрировать подпрограмму типа PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK в качестве подпрограммы InstanceQueryTeardownCallback драйвера мини-фильтра.

Синтаксис

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK PfltInstanceQueryTeardownCallback;

NTSTATUS PfltInstanceQueryTeardownCallback(
  [in] PCFLT_RELATED_OBJECTS FltObjects,
  [in] FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags
)
{...}

Параметры

[in] FltObjects

Указатель на структуру FLT_RELATED_OBJECTS , содержащую непрозрачные указатели для объектов, связанных с текущей операцией.

[in] Flags

Битовая маска флагов, которые описывают, почему была вызвана подпрограмма обратного вызова запроса на очистку данного экземпляра. В настоящее время флаги не определены.

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

Эта подпрограмма обратного вызова возвращает STATUS_SUCCESS или значение NTSTATUS , например одно из следующих значений:

Код возврата Описание
STATUS_FLT_DO_NOT_DETACH
Возврат этого значения состояния предотвращает отсоединение экземпляра драйвера минифильтра. Это код ошибки.

Комментарии

Когда драйвер минифильтра регистрирует себя путем вызова FltRegisterFilter из процедуры DriverEntry , он может зарегистрировать подпрограмму типа PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK в качестве подпрограммы InstanceQueryTeardownCallback драйвера мини-фильтра.

Чтобы зарегистрировать подпрограмму InstanceQueryTeardownCallback , драйвер минифильтра сохраняет адрес подпрограммы типа PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK в элементе InstanceQueryTeardownCallback структуры FLT_REGISTRATION , которую драйвер мини-фильтра передает в качестве параметра Registrationобъекта FltRegisterFilter.

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

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

Если эта подпрограмма возвращает код NTSTATUS об ошибке или предупреждение, например STATUS_FLT_DO_NOT_DETACH, экземпляр драйвера мини-фильтра не отсоединяется от тома. В противном случае экземпляр отсоединяется.

Если драйвер мини-фильтра не определяет подпрограмму InstanceQueryTeardownCallback , ее экземпляры нельзя отсоединить вручную путем вызова FilterDetach или FltDetachVolume.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть fltkernel.h (включая Fltkernel.h)
IRQL PASSIVE_LEVEL

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

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterDetach

FltDetachVolume

FltRegisterFilter

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK