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


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

Драйвер минифильтра может зарегистрировать подпрограмму типа PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK в качестве подпрограммы драйвера minifilter 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 DriverEntry, он может зарегистрировать подпрограмму типа PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK в качестве драйвера minifilter InstanceQueryTeardownCallback подпрограммы.

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

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

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

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

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

Требования

Требование Ценность
целевая платформа Настольный
заголовка fltkernel.h (include Fltkernel.h)
IRQL PASSIVE_LEVEL

См. также

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterDetach

FltDetachVolume

FltRegisterFilter

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK