Inscription du pilote minifiltre
Chaque pilote de minifiltre doit appeler FltRegisterFilter à partir de sa routine DriverEntry pour s’ajouter à la liste globale des pilotes de minifiltre inscrits et fournir au gestionnaire de filtres une liste de routines de rappel et d’autres informations sur le pilote.
Dans l’exemple MiniSpy, le pilote minifilter est inscrit comme indiqué dans l’exemple de code suivant :
NTSTATUS status;
status = FltRegisterFilter(
DriverObject, //Driver
&FilterRegistration, //Registration
&MiniSpyData.FilterHandle); //RetFilter
FltRegisterFilter a deux paramètres d’entrée. Le premier, Driver, est le pointeur de l’objet pilote que le pilote de minifiltre a reçu en tant que paramètre d’entrée DriverObject vers sa routine DriverEntry . La deuxième, Inscription, est un pointeur vers une structure FLT_REGISTRATION qui contient des points d’entrée vers les routines de rappel du pilote minifiltre.
En outre, FltRegisterFilter a un paramètre de sortie, RetFilter, qui reçoit un pointeur de filtre opaque pour le pilote de minifiltre. Ce pointeur de filtre est un paramètre d’entrée obligatoire pour de nombreuses routines de prise en charge FltXxx , notamment FltStartFiltering et FltUnregisterFilter.