Partager via


FltRegisterFilter, fonction (fltkernel.h)

FltRegisterFilter inscrit un pilote minifilter.

Syntaxe

NTSTATUS FLTAPI FltRegisterFilter(
  [in]  PDRIVER_OBJECT         Driver,
  [in]  const FLT_REGISTRATION *Registration,
  [out] PFLT_FILTER            *RetFilter
);

Paramètres

[in] Driver

Pointeur vers l’objet pilote pour le pilote minifilter. Il doit s’agir du même pointeur d’objet de pilote qui a été transmis en tant qu’entrée à la routine DriverEntry du pilote minifilter.

[in] Registration

Pointeur vers une structure d’inscription de pilote minifilter allouée par l’appelant (FLT_REGISTRATION).

[out] RetFilter

Pointeur vers une variable allouée par l’appelant qui reçoit un pointeur de filtre opaque pour l’appelant.

Valeur de retour

FltRegisterFilter retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple l’une des valeurs suivantes :

Retourner le code Description
STATUS_INSUFFICIENT_RESOURCES
FltRegisterFilter a rencontré un échec d’allocation de pool. Il s’agit d’un code d’erreur.
STATUS_INVALID_PARAMETER
L’une des opérations suivantes :
  • Le membre version de la structure de d’inscription n’a pas été défini sur FLT_REGISTRATION_VERSION.
  • L’une des routines de fournisseur de noms non NULL dans la structure Registration a été définie sur une valeur non valide. Les GenerateFileNameCallback, NormalizeNameComponentCallbacket NormalizeNameComponentExCallback membres de FLT_REGISTRATION pointent vers les routines du fournisseur de noms.
STATUS_INVALID_PARAMETER est un code d’erreur.
STATUS_FLT_NOT_INITIALIZED
Le Gestionnaire de filtres n’a pas été initialisé lorsque le filtre a essayé d’inscrire. Vérifiez que le Gestionnaire de filtres est chargé en tant que pilote. Il s’agit d’un code d’erreur.
STATUS_OBJECT_NAME_NOT_FOUND
La clé de service de filtre est introuvable dans le Registre.

-ou-

L’instance de filtre n’est pas inscrite.

Remarques

Chaque pilote minifilter doit appeler FltRegisterFilter à partir de sa routine DriverEntry pour s’ajouter à la liste globale des pilotes minifilter inscrits et fournir au Gestionnaire de filtre une liste de fonctions de rappel et d’autres informations sur le pilote minifilter.

FltRegisterFilter retourne un pointeur de filtre opaque pour le pilote minifilter dans *RetFilter. Cette valeur de pointeur identifie de manière unique le pilote minifilter et reste constante tant que le pilote minifilter est chargé. Le pilote minifilter doit enregistrer ce pointeur, car il s’agit d’un paramètre requis pour FltStartFiltering et FltUnregisterFilter.

Après avoir appelé FltRegisterFilter, un pilote minifilter appelle généralement fltStartFiltering pour commencer à filtrer les opérations d’E/S.

Un pilote minifilter ne peut appeler qu'FltRegisterFilter pour s’inscrire lui-même, et non pas un autre pilote minifilter.

Pour annuler l’inscription, un pilote minifilter appelle FltUnregisterFilter..

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête fltkernel.h (include Fltkernel.h)
bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Voir aussi

FLT_REGISTRATION

FltStartFiltering

FltUnregisterFilter