FLT_REGISTRATION structure (fltkernel.h)
La structure FLT_REGISTRATION est passée en tant que paramètre à FltRegisterFilter.
Syntaxe
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;
Membres
Size
Taille, en octets, de la structure FLT_REGISTRATION. Les pilotes minifilter doivent définir ce membre sur sizeof(FLT_REGISTRATION).
Version
Niveau de révision de la structure FLT_REGISTRATION. Les pilotes Minifilter doivent définir ce membre sur FLT_REGISTRATION_VERSION.
Flags
Masque de bits d’indicateurs d’inscription de minifiltres. Ce membre peut être NULL ou une combinaison des éléments suivants.
ContextRegistration
Tableau de longueur variable de structures FLT_CONTEXT_REGISTRATION , un pour chaque type de contexte utilisé par le minifiltre. Le dernier élément du tableau doit être {FLT_CONTEXT_END}. Ce membre est facultatif et peut être NULL.
OperationRegistration
Tableau de longueur variable de structures FLT_OPERATION_REGISTRATION , un pour chaque type d’E/S pour lequel le minifiltre enregistre des routines de rappel de préopération (PFLT_PRE_OPERATION_CALLBACK) et de post-opération (PFLT_POST_OPERATION_CALLBACK). Le dernier élément du tableau doit être {IRP_MJ_OPERATION_END}. Ce membre est facultatif et peut être NULL.
FilterUnloadCallback
Pointeur vers une routine de type PFLT_FILTER_UNLOAD_CALLBACK être inscrite en tant que routine FilterUnloadCallback du minifiltre. Ce membre est facultatif et peut être NULL. Notez que si NULL est spécifié pour cette routine, le filtre ne peut jamais être déchargé.
InstanceSetupCallback
Pointeur vers une routine de type PFLT_INSTANCE_SETUP_CALLBACK être inscrite en tant que routine InstanceSetupCallback du minifilter. Ce membre est facultatif et peut être NULL. Notez que si NULL est spécifié pour cette routine, la pièce jointe est toujours effectuée.
InstanceQueryTeardownCallback
Pointeur vers une routine de type PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK être inscrite en tant que routine InstanceQueryTeardownCallback du minifilter. Ce membre est facultatif et peut être NULL. Notez que si NULL est spécifié pour cette routine, les instances ne seront jamais détachées manuellement.
InstanceTeardownStartCallback
Pointeur vers une routine de type PFLT_INSTANCE_TEARDOWN_CALLBACK être inscrite en tant que routine InstanceTeardownStartCallback du minifilter. Ce membre est facultatif et peut être NULL.
InstanceTeardownCompleteCallback
Pointeur vers une routine de type PFLT_INSTANCE_TEARDOWN_CALLBACK être inscrite en tant que routine InstanceTeardownCompleteCallback du minifilter. Ce membre est facultatif et peut être NULL.
GenerateFileNameCallback
Pointeur vers une routine de type PFLT_GENERATE_FILE_NAME être inscrite en tant que routine GenerateFileNameCallback du minifiltre. Ce membre est facultatif et peut être NULL.
NormalizeNameComponentCallback
Pointeur vers une routine de type PFLT_NORMALIZE_NAME_COMPONENT être inscrite en tant que routine NormalizeNameComponentCallback du minifilter. Ce membre est facultatif et peut être NULL.
NormalizeContextCleanupCallback
Pointeur vers une routine de type PFLT_NORMALIZE_CONTEXT_CLEANUP être inscrite en tant que routine NormalizeContextCleanupCallback du minifiltre. Ce membre est facultatif et peut être NULL.
TransactionNotificationCallback
(Windows Vista et versions ultérieures uniquement.) Pointeur vers une routine de type PFLT_TRANSACTION_NOTIFICATION_CALLBACK être inscrite en tant que routine TransactionNotificationCallback du minifiltre. Ce membre est facultatif et peut être NULL.
NormalizeNameComponentExCallback
(Windows Vista et versions ultérieures uniquement.) Pointeur vers une routine de type PFLT_NORMALIZE_NAME_COMPONENT_EX à inscrire en tant que routine NormalizeNameComponentExCallback du pilote minifilter. Ce membre est facultatif et peut être NULL.
Par rapport à la routine de rappel NormalizeNameComponentCallback , la routine de rappel NormalizeNameComponentExCallback prend en charge un paramètre d’objet fichier supplémentaire, FileObject (de type PFILE_OBJECT). Un pilote minifilter peut utiliser ce paramètre pour obtenir des informations supplémentaires, telles que celles fournies par la structure TXN_PARAMETER_BLOCK .
Un pilote minifilter peut définir simultanément les membres NormalizeNameComponentCallback et NormalizeNameComponentExCallback sur NULL ; Toutefois, un pilote minifilter du fournisseur de noms doit inscrire une routine de rappel NormalizeNameComponentCallback ou NormalizeNameComponentExCallback , ou les deux. Par exemple, un pilote minifilter du fournisseur de noms qui n’a aucune utilisation pour le paramètre FileObject supplémentaire peut définir le membre NormalizeNameComponentExCallback sur NULL et fournir uniquement une routine de rappel NormalizeNameComponentCallback .
Un pilote minifilter peut fournir à la fois un rappel NormalizeNameComponentCallback et un rappel NormalizeNameComponentExCallback . Dans ce cas, à compter de Windows Vista, le gestionnaire de filtres utilise uniquement le rappel NormalizeNameComponentExCallback ; pour les systèmes d’exploitation Windows antérieurs à Windows Vista, le gestionnaire de filtres utilise uniquement le rappel NormalizeNameComponentCallback . Cela permet au même fichier binaire du pilote minifilter de s’exécuter sous toutes les versions du système d’exploitation.
SectionNotificationCallback
Pointeur vers une routine de type PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK à inscrire en tant que routine SectionNotificationCallback du minifilter. Ce membre est facultatif et peut être NULL. Ce rappel est appelé pour les notifications d’échecs d’E/S pour les sections créées avec FltCreateSectionForDatascan.
Remarques
La structure FLT_REGISTRATION est utilisée pour fournir des informations sur un minifiltre de système de fichiers, telles qu’une routine FilterUnloadCallback (PFLT_FILTER_UNLOAD_CALLBACK) et des routines de rappel de préopération (PFLT_PRE_OPERATION_CALLBACK) et de post-opération (PFLT_POST_OPERATION_CALLBACK), au gestionnaire de filtres. Le minifilter passe un pointeur vers cette structure en tant que paramètre Registration à FltRegisterFilter.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | fltkernel.h (inclure Fltkernel.h) |
Voir aussi
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
PFLT_NORMALIZE_CONTEXT_CLEANUP