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 值,例如以下值之一:
返回代码 | 描述 |
---|---|
|
返回此状态值可防止分离微型筛选器驱动程序实例。 这是一个错误代码。 |
当微型筛选器驱动程序通过从 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 例程,则无法通过调用 FilterDetach 或 FltDetachVolume手动分离其实例。
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | fltkernel.h (包括 Fltkernel.h) |
IRQL | PASSIVE_LEVEL |