PFLT_INSTANCE_SETUP_CALLBACK回调函数 (fltkernel.h)

微筛选器驱动程序可以将 PFLT_INSTANCE_SETUP_CALLBACK 类型的例程注册为微筛选器驱动程序的 InstanceSetupCallback 例程。

语法

PFLT_INSTANCE_SETUP_CALLBACK PfltInstanceSetupCallback;

NTSTATUS PfltInstanceSetupCallback(
  [in] PCFLT_RELATED_OBJECTS FltObjects,
  [in] FLT_INSTANCE_SETUP_FLAGS Flags,
  [in] DEVICE_TYPE VolumeDeviceType,
  [in] FLT_FILESYSTEM_TYPE VolumeFilesystemType
)
{...}

参数

[in] FltObjects

指向 FLT_RELATED_OBJECTS 结构的指针,该结构包含与当前操作相关的对象的不透明指针。

[in] Flags

指示附加实例的原因的标志的位掩码。 可以是以下一项或多项:

标志 含义
FLTFL_INSTANCE_SETUP_AUTOMATIC_ATTACHMENT (0x00000001) 正在自动附加实例。 微筛选器驱动程序刚刚加载并附加到所有现有卷,或者正在附加到新装载的卷。
FLTFL_INSTANCE_SETUP_MANUAL_ATTACHMENT (0x00000002) 手动附加实例是因为用户模式应用程序已调用 FilterAttachFilterAttachAtAltitude,或者因为内核模式组件调用了 FltAttachVolumeFltAttachVolumeAtAltitude
FLTFL_INSTANCE_SETUP_NEWLY_MOUNTED_VOLUME (0x00000004) 实例自动附加到新装载的卷。
FLTFL_INSTANCE_SETUP_DETACHED_VOLUME (0x00000008) 实例正在附加到分离的卷。 在某些文件系统上, (FAT 和 CDFS() 某些可移动媒体驱动器使用)可以在分离卷后重新附加卷。 如果卷没有关联的存储堆栈,则将其分离。 处于此状态的卷通常是仍具有打开文件的已卸除卷。
FLTFL_INSTANCE_SETUP_DEV_VOLUME (0x00000010) 实例正在附加到格式化为开发人员卷的卷。 文件系统筛选器可以启用不需要管理员信任给定计算机上的卷的优化。 从 Windows 11 版本 22H2 9 月更新开始可用。
FLTFL_INSTANCE_SETUP_TRUSTED_VOLUME (0x00000020) 指示给定计算机上的管理员信任此卷,并且愿意启用优化,例如不将防病毒筛选器附加到卷。 此信息保存在给定计算机上的注册表中。 文件系统筛选器可以使用此功能来启用需要管理员信任给定计算机上的卷的优化。 从 Windows 11 版本 22H2 9 月更新开始可用。

[in] VolumeDeviceType

文件系统卷的设备类型。 必须是下列选项之一:

  • FILE_DEVICE_CD_ROM_FILE_SYSTEM (0x00000002)
  • FILE_DEVICE_DISK_FILE_SYSTEM (0x00000008)
  • FILE_DEVICE_NETWORK_FILE_SYSTEM (0x00000014)

[in] VolumeFilesystemType

卷的文件系统类型。 FLT_FILESYSTEM_TYPE 中列出了可能的值。

返回值

此回调例程返回STATUS_SUCCESS或 NTSTATUS 值,如下所示:

返回代码 说明
STATUS_FLT_DO_NOT_ATTACH 返回此值可防止微筛选器驱动程序实例附加到给定卷。 这是错误代码。

注解

注意

请勿在 PFLT_INSTANCE_SETUP_CALLBACK 实现中执行任何线程同步或进程间通信。 执行此类操作可能会导致死锁情况。

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

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

筛选器管理器在装载新卷后的第一次操作中调用此例程。

筛选器管理器调用此例程以允许微筛选器驱动程序响应自动或手动附件请求。 如果此例程返回错误或警告 NTSTATUS 代码,则微筛选器驱动程序实例不会附加到给定卷。 否则,微筛选器驱动程序实例将附加到给定卷。

要求

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

另请参阅

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterAttach

FilterAttachAtAltitude

FltAttachVolume

FltAttachVolumeAtAltitude

FltRegisterFilter

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

开发驱动器