使用英语阅读

通过


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 的例程的地址存储在 InstanceQueryTeardownCallbackFLT_REGISTRATION 结构的成员中,微型筛选器驱动程序作为 注册 参数 FltRegisterFilter

筛选器管理器调用此例程,以允许微型筛选器驱动程序响应手动分离请求。 当用户模式应用程序调用 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