Lancement du filtrage
Après avoir appelé FltRegisterFilter, la routine DriverEntry d’un pilote de minifiltre appelle généralement FltStartFiltering pour commencer à filtrer les opérations d’E/S.
Chaque pilote de minifiltre doit appeler FltStartFiltering à partir de sa routine DriverEntry pour informer le gestionnaire de filtres que le pilote de minifiltre est prêt à commencer à attacher aux volumes et à filtrer les demandes d’E/S. Une fois que le pilote de minifiltre a appelé FltStartFiltering, le gestionnaire de filtres traite le pilote de minifiltre comme un pilote de minifiltre entièrement actif, lui présentant des demandes d’E/S et des notifications de volumes à attacher. Le pilote de minifiltre doit être prêt à commencer à recevoir ces demandes et notifications d’E/S avant même le retour de FltStartFiltering .
Dans l’exemple de pilote MiniSpy, FltStartFiltering est appelé comme indiqué dans l’exemple de code suivant :
status = FltStartFiltering( MiniSpyData.FilterHandle );
if( !NT_SUCCESS( status )) {
FltUnregisterFilter( MiniSpyData.FilterHandle );
}
Si l’appel à FltStartFiltering ne retourne pas STATUS_SUCCESS, le pilote de minifiltre doit appeler FltUnregisterFilter pour annuler l’inscription.