struttura FLT_REGISTRATION (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;
Membri
Size
Dimensione, in byte, della struttura FLT_REGISTRATION. I driver minifiltro devono impostare questo membro su sizeof(FLT_REGISTRATION).
Version
Livello di revisione della struttura FLT_REGISTRATION. I driver minifiltro devono impostare questo membro su FLT_REGISTRATION_VERSION.
Flags
Maschera di bit di flag di registrazione minifiltro. Questo membro può essere NULL o una combinazione di quanto segue.
ContextRegistration
Matrice a lunghezza variabile di strutture FLT_CONTEXT_REGISTRATION, una per ogni tipo di contesto utilizzato dal minifiltro. L'ultimo elemento nella 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 minifiltro registra le routine di callback (PFLT_PRE_OPERATION_CALLBACK) e postoperazione (PFLT_POST_OPERATION_CALLBACK). L'ultimo elemento nella 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 minifiltro routine. 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 minifiltro. Questo membro è facoltativo e può essere NULL. Si noti che se NULL viene specificato per questa routine, l'allegato viene sempre creato.
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 del minifilter InstanceTeardownStartCallback routine. 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 routine del minifiltro. Questo membro è facoltativo e può essere NULL.
NormalizeNameComponentCallback
Puntatore a una routine di tipo PFLT_NORMALIZE_NAME_COMPONENT da registrare come routine NormalizeNameComponentCallback routine del minifiltro. Questo membro è facoltativo e può essere NULL.
NormalizeContextCleanupCallback
Puntatore a una routine di tipo PFLT_NORMALIZE_CONTEXT_CLEANUP da registrare come routine NormalizeContextCleanupCallback routine del minifiltro. 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 minifiltro. 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 del driver minifilter NormalizeNameComponentExCallback routine. Questo membro è facoltativo e può essere NULL.
Rispetto alla routine di callback NormalizeNameComponentCallback, la routine di callback NormalizeNameComponentExCallback supporta un parametro di oggetto file aggiuntivo FileObject (di tipo PFILE_OBJECT). Un driver minifiltro può usare questo parametro per acquisire informazioni aggiuntive, ad esempio quelle fornite dalla struttura TXN_PARAMETER_BLOCK.
Un driver minifiltro può impostare simultaneamente i membri NormalizeNameComponentCallback e NormalizeNameComponentExCallback su NULL; Tuttavia, un driver minifilter provider name deve registrare un NormalizeNameComponentCallback o NormalizeNameComponentExCallback routine di callback o entrambi. Ad esempio, un driver minifiltro del provider di nomi che non dispone di alcun utilizzo per il parametro FileObject aggiuntivo può impostare il membro NormalizeNameComponentExCallback su NULL e fornire solo un NormalizeNameComponentCallback routine di callback.
Un driver minifilter può fornire un callback NormalizeNameComponentCallback e un callback NormalizeNameComponentExCallback. In questo caso, a partire da Windows Vista, il gestore filtri userà solo il callback NormalizeNameComponentExCallback; per i sistemi operativi Windows precedenti a Windows Vista, il gestore filtri userà solo il callback NormalizeNameComponentCallback. 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.
Osservazioni
La struttura FLT_REGISTRATION viene usata per fornire informazioni su un minifiltro 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) routine di callback al gestore filtri. Il minifiltro passa un puntatore a questa struttura come parametro Registration per FltRegisterFilter.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | fltkernel.h (include Fltkernel.h) |
Vedere anche
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
PFLT_NORMALIZE_CONTEXT_CLEANUP