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
指向要注册为微型筛选器 FilterUnloadCallback 例程的类型 PFLT_FILTER_UNLOAD_CALLBACK 例程的指针。 此成员是可选的,可以 NULL。 请注意,如果为此例程指定了 NULL,则永远无法卸载筛选器。
InstanceSetupCallback
指向要注册为微型筛选器的 InstanceSetupCallback 例程 PFLT_INSTANCE_SETUP_CALLBACK 类型的例程的指针。 此成员是可选的,可以 NULL。 请注意,如果为此例程指定了 NULL,则始终执行附件。
InstanceQueryTeardownCallback
指向要注册为微型筛选器的 InstanceQueryTeardownCallback 例程的 PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 类型的例程的指针。 此成员是可选的,可以 NULL。 请注意,如果为此例程指定 NULL,则永远不会手动分离实例。
InstanceTeardownStartCallback
指向要注册为微型筛选器的 InstanceTeardownStartCallback 例程的类型 PFLT_INSTANCE_TEARDOWN_CALLBACK 例程的指针。 此成员是可选的,可以 NULL。
InstanceTeardownCompleteCallback
指向要注册为 minifilter InstanceTeardownCompleteCallback 例程的类型 PFLT_INSTANCE_TEARDOWN_CALLBACK 例程的指针。 此成员是可选的,可以 NULL。
GenerateFileNameCallback
指向要注册为微型筛选器的 GenerateFileNameCallback 例程的类型 PFLT_GENERATE_FILE_NAME 例程的指针。 此成员是可选的,可以 NULL。
NormalizeNameComponentCallback
指向要注册为 minifilter NormalizeNameComponentCallback 例程的类型 PFLT_NORMALIZE_NAME_COMPONENT 例程的指针。 此成员是可选的,可以 NULL。
NormalizeContextCleanupCallback
指向要注册为 minifilter NormalizeContextCleanupCallback 例程的类型 PFLT_NORMALIZE_CONTEXT_CLEANUP 例程的指针。 此成员是可选的,可以 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。
要求
要求 | 价值 |
---|---|
标头 | fltkernel.h (包括 Fltkernel.h) |
另请参阅
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
PFLT_NORMALIZE_CONTEXT_CLEANUP