Fonction FltRegisterFilter (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 driver pour le pilote minifilter. Il doit s’agir du pointeur d’objet pilote qui a été passé en tant qu’entrée à la routine DriverEntry du pilote minifilter.

[in] Registration

Pointeur vers une structure d’inscription de pilote minifiltre 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 retournée

FltRegisterFilter retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :

Code de retour Description
STATUS_INSUFFICIENT_RESOURCES
FltRegisterFilter a rencontré un échec d’allocation de pool. Il s’agit d’un code d’erreur.
STATUS_INVALID_PARAMETER
Celui-ci peut avoir l'une des valeurs suivantes :
  • Le membre Version de la structure 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 d’inscription a été définie sur une valeur non valide. Les membres GenerateFileNameCallback, NormalizeNameComponentCallback et NormalizeNameComponentExCallbackde FLT_REGISTRATION pointent vers les routines de 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 tenté de s’inscrire. Assurez-vous 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-

Le filtre instance n’est pas inscrit.

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 filtres 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 obligatoire 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 peut uniquement appeler FltRegisterFilter pour s’inscrire lui-même, et non un autre pilote minifilter.

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

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête fltkernel.h (inclure Fltkernel.h)
Bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Voir aussi

FLT_REGISTRATION

FltStartFiltering

FltUnregisterFilter