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) | 由于用户模式应用程序已 FilterAttach 或 FilterAttachAtAltitude,或者内核模式组件已 FltAttachVolume 或 FltAttachVolumeAtAltitude |
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(0x00000003)
- 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 例程,微型筛选器驱动程序将 InstanceSetupCall back 中 PFLT_INSTANCE_SETUP_CALLBACK 类型的例程的地址存储在 FLT_REGISTRATION 结构的成员中,微型筛选器驱动程序作为 FltRegisterFilter的 注册 参数传递。
装载新卷后,筛选器管理器会在第一个作上调用此例程。
筛选器管理器调用此例程,以允许微型筛选器驱动程序响应自动或手动附件请求。 如果此例程返回错误或警告 NTSTATUS 代码,则微型筛选器驱动程序实例不会附加到给定卷。 否则,微型筛选器驱动程序实例将附加到给定卷。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | fltkernel.h (包括 Fltkernel.h) |
IRQL | PASSIVE_LEVEL |
另请参阅
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK