FLT_REGISTRATION struttura (fltkernel.h)
La struttura FLT_REGISTRATION viene passata come parametro a FltRegisterFilter.
Sintassi
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;
Members
Size
Dimensioni, in byte, della struttura FLT_REGISTRATION. I driver minifilter devono impostare questo membro su sizeof(FLT_REGISTRATION).
Version
Livello di revisione della struttura FLT_REGISTRATION. I driver minifilter devono impostare questo membro su FLT_REGISTRATION_VERSION.
Flags
Maschera di contrassegni di registrazione minifilter. Questo membro può essere NULL o una combinazione dei seguenti.
ContextRegistration
Matrice a lunghezza variabile di strutture FLT_CONTEXT_REGISTRATION , una per ogni tipo di contesto usato dal minifiltro. L'ultimo elemento della matrice deve essere {FLT_CONTEXT_END}. Questo membro è facoltativo e può essere NULL.
OperationRegistration
Matrice a lunghezza variabile di strutture FLT_OPERATION_REGISTRATION , una per ogni tipo di I/O per cui il minifilter registra la preoperazione (PFLT_PRE_OPERATION_CALLBACK) e le routine di callback (PFLT_POST_OPERATION_CALLBACK). L'ultimo elemento della matrice deve essere {IRP_MJ_OPERATION_END}. Questo membro è facoltativo e può essere NULL.
FilterUnloadCallback
Puntatore a una routine di tipo PFLT_FILTER_UNLOAD_CALLBACK da registrare come routine filterUnloadCallback del minifilter. Questo membro è facoltativo e può essere NULL. Si noti che se null viene specificato per questa routine, il filtro non può mai essere scaricato.
InstanceSetupCallback
Puntatore a una routine di tipo PFLT_INSTANCE_SETUP_CALLBACK da registrare come routine InstanceSetupCallback del minifilter. Questo membro è facoltativo e può essere NULL. Si noti che se null viene specificato per questa routine, l'allegato viene sempre effettuato.
InstanceQueryTeardownCallback
Puntatore a una routine di tipo PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK da registrare come routine instanceQueryTeardownCallback del minifilter. Questo membro è facoltativo e può essere NULL. Si noti che se null viene specificato per questa routine, le istanze non verranno mai scollegate manualmente.
InstanceTeardownStartCallback
Puntatore a una routine di tipo PFLT_INSTANCE_TEARDOWN_CALLBACK da registrare come routine instanceTeardownStartCallback del minifilter. Questo membro è facoltativo e può essere NULL.
InstanceTeardownCompleteCallback
Puntatore a una routine di tipo PFLT_INSTANCE_TEARDOWN_CALLBACK da registrare come routine instanceTeardownCompleteCallback del minifilter. Questo membro è facoltativo e può essere NULL.
GenerateFileNameCallback
Puntatore a una routine di tipo PFLT_GENERATE_FILE_NAME da registrare come routine GenerateFileNameCallback del minifilter. Questo membro è facoltativo e può essere NULL.
NormalizeNameComponentCallback
Puntatore a una routine di tipo PFLT_NORMALIZE_NAME_COMPONENT da registrare come routine NormalNameComponentCallback del minifilter. Questo membro è facoltativo e può essere NULL.
NormalizeContextCleanupCallback
Puntatore a una routine di tipo PFLT_NORMALIZE_CONTEXT_CLEANUP da registrare come routine NormalContextCleanupCallback del minifilter. Questo membro è facoltativo e può essere NULL.
TransactionNotificationCallback
(Solo Windows Vista e versioni successive). Puntatore a una routine di tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK da registrare come routine TransactionNotificationCallback del minifilter. Questo membro è facoltativo e può essere NULL.
NormalizeNameComponentExCallback
(Solo Windows Vista e versioni successive). Puntatore a una routine di tipo PFLT_NORMALIZE_NAME_COMPONENT_EX da registrare come routine NormalNameComponentExCallback del driver minifilter. Questo membro è facoltativo e può essere NULL.
Rispetto alla routine di callback NormalNameComponentCallback , la routine di callback NormalNameComponentExCallback supporta un parametro di oggetto file aggiuntivo, FileObject (di tipo PFILE_OBJECT). Un driver minifilter può usare questo parametro per acquisire informazioni aggiuntive, ad esempio quelle fornite dalla struttura TXN_PARAMETER_BLOCK .
Un driver minifilter può impostare simultaneamente sia i membri NormalNameComponentCallback che NormalNameComponentExCallback su NULL; tuttavia, un driver minifilter del provider di nomi deve registrare una routine di callback NormalNameComponentCallback o NormalNameComponentExCallback o entrambe. Ad esempio, un driver minifilter del provider di nomi senza uso per il parametro FileObject aggiuntivo può impostare il membro NormalNameComponentExCallback su NULL e fornire solo una routine di callback NormalNameComponentCallback .
Un driver minifilter può fornire sia un callback NormalNameComponentCallback che un callback NormalNameComponentExCallback . In questo caso, a partire da Windows Vista, il gestore filtri userà solo il callback NormalNameComponentExCallback ; per i sistemi operativi Windows prima di Windows Vista, il gestore filtri userà solo il callback NormalNameComponentCallback . Ciò consente l'esecuzione dello stesso file binario del driver minifilter in tutte le versioni del sistema operativo.
SectionNotificationCallback
Puntatore a una routine di tipo PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK da registrare come routine sectionNotificationCallback del minifilter. Questo membro è facoltativo e può essere NULL. Questo callback viene chiamato per le notifiche degli errori di I/O per le sezioni create con FltCreateSectionForDatascan.
Commenti
La struttura FLT_REGISTRATION viene usata per fornire informazioni su un minifilter del file system, ad esempio una routine FilterUnloadCallback (PFLT_FILTER_UNLOAD_CALLBACK) e la preoperazione (PFLT_PRE_OPERATION_CALLBACK) e la postoperazione (PFLT_POST_OPERATION_CALLBACK), alle routine di callback, alla gestione filtri. Il minifilter passa un puntatore a questa struttura come parametro Di registrazione a FltRegisterFilter.
Requisiti
Requisito | Valore |
---|---|
Intestazione | fltkernel.h (includere Fltkernel.h) |
Vedi anche
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
PFLT_NORMALIZE_CONTEXT_CLEANUP