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 |
---|---|
|
FltRegisterFilter a rencontré un échec d’allocation de pool. Il s’agit d’un code d’erreur. |
|
L’une des opérations suivantes :
|
|
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. |
|
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 |