FLT_REGISTRATION 结构 (fltkernel.h)
FLT_REGISTRATION 结构作为参数传递给 FltRegisterFilter。
语法
typedef struct _FLT_REGISTRATION {
USHORT Size;
USHORT Version;
FLT_REGISTRATION_FLAGS Flags;
const FLT_CONTEXT_REGISTRATION *ContextRegistration;
const FLT_OPERATION_REGISTRATION *OperationRegistration;
PFLT_FILTER_UNLOAD_CALLBACK FilterUnloadCallback;
PFLT_INSTANCE_SETUP_CALLBACK InstanceSetupCallback;
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK InstanceQueryTeardownCallback;
PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownStartCallback;
PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownCompleteCallback;
PFLT_GENERATE_FILE_NAME GenerateFileNameCallback;
PFLT_NORMALIZE_NAME_COMPONENT NormalizeNameComponentCallback;
PFLT_NORMALIZE_CONTEXT_CLEANUP NormalizeContextCleanupCallback;
PFLT_TRANSACTION_NOTIFICATION_CALLBACK TransactionNotificationCallback;
PFLT_NORMALIZE_NAME_COMPONENT_EX NormalizeNameComponentExCallback;
PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK SectionNotificationCallback;
} FLT_REGISTRATION, *PFLT_REGISTRATION;
成员
Size
FLT_REGISTRATION结构的大小(以字节为单位)。 微筛选器驱动程序必须将此成员设置为 sizeof (FLT_REGISTRATION) 。
Version
FLT_REGISTRATION结构的修订级别。 微筛选器驱动程序必须将此成员设置为 FLT_REGISTRATION_VERSION。
Flags
微筛选器注册标志的位掩码。 此成员可以是 NULL ,也可以是以下各项的组合。
ContextRegistration
FLT_CONTEXT_REGISTRATION结构的可变长度数组,适用于微筛选器使用的每个上下文类型。 数组中的最后一个元素必须是 {FLT_CONTEXT_END}。 此成员是可选的,可以为 NULL。
OperationRegistration
一个由FLT_OPERATION_REGISTRATION结构的可变长度数组,每种类型的 I/O 各有一个,微筛选器为其注册预操作 (PFLT_PRE_OPERATION_CALLBACK) 和后操作 (PFLT_POST_OPERATION_CALLBACK) 回调例程。 数组中的最后一个元素必须是 {IRP_MJ_OPERATION_END}。 此成员是可选的,可以为 NULL。
FilterUnloadCallback
指向类型的例程 的指针,PFLT_FILTER_UNLOAD_CALLBACK 要注册为微筛选器的 FilterUnloadCallback 例程。 此成员是可选的,可以为 NULL。 请注意,如果为此例程指定 NULL ,则永远无法卸载筛选器。
InstanceSetupCallback
指向要注册为微筛选器的 InstanceSetupCallback 例程PFLT_INSTANCE_SETUP_CALLBACK类型的例程的指针。 此成员是可选的,可以为 NULL。 请注意,如果为此例程指定 NULL ,则始终会进行附件。
InstanceQueryTeardownCallback
指向类型的例程 的指针,PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 要注册为微筛选器的 InstanceQueryTeardownCallback 例程。 此成员是可选的,可以为 NULL。 请注意,如果为此例程指定 NULL ,则永远不会手动分离实例。
InstanceTeardownStartCallback
指向类型为例程的指针 ,PFLT_INSTANCE_TEARDOWN_CALLBACK 要注册为微筛选器的 InstanceTeardownStartCallback 例程。 此成员是可选的,可以为 NULL。
InstanceTeardownCompleteCallback
指向类型为例程的指针 ,PFLT_INSTANCE_TEARDOWN_CALLBACK 要注册为微筛选器的 InstanceTeardownCompleteCallback 例程。 此成员是可选的,可以为 NULL。
GenerateFileNameCallback
指向要注册为微筛选器的 GenerateFileNameCallback 例程PFLT_GENERATE_FILE_NAME类型的例程的指针。 此成员是可选的,可以为 NULL。
NormalizeNameComponentCallback
指向类型 PFLT_NORMALIZE_NAME_COMPONENT 要注册为微筛选器 NormalizeNameComponentCallback 例程的例程的指针。 此成员是可选的,可以为 NULL。
NormalizeContextCleanupCallback
指向类型的例程 的指针,PFLT_NORMALIZE_CONTEXT_CLEANUP 要注册为微筛选器的 NormalizeContextCleanupCallback 例程。 此成员是可选的,可以为 NULL。
TransactionNotificationCallback
仅 (Windows Vista 及更高版本。) 指向要注册为微筛选器的 TransactionNotificationCallback 例程PFLT_TRANSACTION_NOTIFICATION_CALLBACK类型的例程的指针。 此成员是可选的,可以为 NULL。
NormalizeNameComponentExCallback
仅 (Windows Vista 及更高版本。) 指向要注册为微筛选器驱动程序 NormalizeNameComponentExCallback 例程PFLT_NORMALIZE_NAME_COMPONENT_EX类型的例程的指针。 此成员是可选的,可以为 NULL。
与 NormalizeNameComponentCallback 回调例程相比, NormalizeNameComponentExCallback 回调例程支持其他文件对象参数 FileObject (类型为 PFILE_OBJECT) 。 微筛选器驱动程序可以使用此参数来获取其他信息,例如 TXN_PARAMETER_BLOCK 结构提供的信息。
微筛选器驱动程序可以同时将 NormalizeNameComponentCallback 和 NormalizeNameComponentExCallback 成员设置为 NULL;但是,名称提供程序微筛选器驱动程序必须注册 NormalizeNameComponentCallback 或 NormalizeNameComponentExCallback 回调例程,或同时注册这两者。 例如,对其他 FileObject 参数没有用途的名称提供程序微筛选器驱动程序可以将 NormalizeNameComponentExCallback 成员设置为 NULL ,并且仅提供 NormalizeNameComponentCallback 回调例程。
微筛选器驱动程序可以提供 NormalizeNameComponentCallback 回调和 NormalizeNameComponentExCallback 回调。 在这种情况下,从 Windows Vista 开始,筛选器管理器将仅使用 NormalizeNameComponentExCallback 回调;对于 Windows Vista 之前的 Windows 操作系统,筛选器管理器将仅使用 NormalizeNameComponentCallback 回调。 这允许同一微筛选器驱动程序二进制文件在所有版本的操作系统下运行。
SectionNotificationCallback
指向要注册为微筛选器的 SectionNotificationCallback 例程PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK类型的例程的指针。 此成员是可选的,可以为 NULL。 对于使用 FltCreateSectionForDatascan 创建的节的 I/O 失败通知,调用此回调。
注解
FLT_REGISTRATION结构用于向筛选器管理器提供有关文件系统微筛选器的信息,例如 FilterUnloadCallback (PFLT_FILTER_UNLOAD_CALLBACK) 例程和预操作 (PFLT_PRE_OPERATION_CALLBACK) 和操作后 (PFLT_POST_OPERATION_CALLBACK) 回调例程。 微筛选器将指向此结构的指针作为 Registration 参数传递给 FltRegisterFilter。
要求
要求 | 值 |
---|---|
Header | fltkernel.h (包括 Fltkernel.h) |
另请参阅
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
PFLT_NORMALIZE_CONTEXT_CLEANUP