Partager via


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.

Valeur Signification
FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP
Si cet indicateur est défini, le minifilter n’est pas déchargé en réponse aux demandes d’arrêt de service, même si le membre FilterUnloadCallback n’est pas NULL.
FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS
Si cet indicateur est défini, le minifiltre prend en charge le filtrage des requêtes de canal nommé et de maillot. Cet indicateur a été introduit dans Windows 8.
FLTFL_REGISTRATION_SUPPORT_DAX_VOLUME
Si cet indicateur est défini, le minifiltre prend en charge l’attachement à un volume d’accès direct (DAX). Cela indique au Gestionnaire de filtres que le minifiltre va filtrer le volume DAX. Cet indicateur a été introduit dans Windows 10, version 1607.

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

FLT_CONTEXT_REGISTRATION

FLT_OPERATION_REGISTRATION

FltRegisterFilter

PFLT_FILTER_UNLOAD_CALLBACK

PFLT_GENERATE_FILE_NAME

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

PFLT_NORMALIZE_CONTEXT_CLEANUP

PFLT_NORMALIZE_NAME_COMPONENT

PFLT_NORMALIZE_NAME_COMPONENT_EX

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK

PFLT_TRANSACTION_NOTIFICATION_CALLBACK