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 |
---|---|
|
FltRegisterFilter a rencontré un échec d’allocation de pool. Il s’agit d’un code d’erreur. |
|
Celui-ci peut avoir l'une des valeurs suivantes :
|
|
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. |
|
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 |