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_SUCCESSNTSTATUS 值,如下所示:

返回代码 说明
STATUS_FLT_DO_NOT_DETACH
返回此状态值可防止分离微筛选器驱动程序实例。 这是错误代码。

注解

当微筛选器驱动程序通过从其 DriverEntry 例程调用 FltRegisterFilter 来注册自身时,它可以将 PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 类型的例程注册为微筛选器驱动程序的 InstanceQueryTeardownCallback 例程。

为了注册 InstanceQueryTeardownCallback 例程,微筛选器驱动程序会将 PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 类型的例程的地址存储在微筛选器驱动程序作为 FltRegisterFilterRegistration 参数传递的 FLT_REGISTRATION 结构的 InstanceQueryTeardownCallback 成员中。

筛选器管理器调用此例程以允许微筛选器驱动程序响应手动分离请求。 当用户模式应用程序调用 FilterDetach 或内核模式组件调用 FltDetachVolume 时,会收到此类请求。

对于自动或强制分离请求,例如,当卸载微筛选器驱动程序或卸载卷时,不会调用此例程。

如果此例程返回错误或警告 NTSTATUS 代码(如 STATUS_FLT_DO_NOT_DETACH),则微筛选器驱动程序实例不会与卷分离。 否则,将分离实例。

如果微筛选器驱动程序未定义 InstanceQueryTeardownCallback 例程,则无法通过调用 FilterDetachFltDetachVolume 手动分离其实例。

要求

要求
目标平台 桌面
标头 fltkernel.h (包括 Fltkernel.h)
IRQL PASSIVE_LEVEL

另请参阅

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterDetach

FltDetachVolume

FltRegisterFilter

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK