Fonction FltEnumerateFilters (fltkernel.h)
La routine FltEnumerateFilters énumère tous les pilotes de minifiltres inscrits dans le système.
Syntaxe
NTSTATUS FLTAPI FltEnumerateFilters(
[out] PFLT_FILTER *FilterList,
[in] ULONG FilterListSize,
[out] PULONG NumberFiltersReturned
);
Paramètres
[out] FilterList
Pointeur vers une mémoire tampon allouée à l’appelant qui reçoit un tableau de pointeurs de filtre opaques. Ce paramètre est facultatif et peut être NULL si la valeur du paramètre FilterListSize est égale à zéro. Si FilterListSize est égal à zéro en entrée et que FilterList a la valeur NULL, le paramètre NumberFiltersReturned reçoit le nombre de pilotes de minifiltre trouvés.
[in] FilterListSize
Nombre de pointeurs de filtre opaques que la mémoire tampon vers laquelle pointe le paramètre FilterList peut contenir. Ce paramètre est facultatif et peut être égal à zéro. Si FilterListSize est égal à zéro en entrée et que FilterList a la valeur NULL, le paramètre NumberFiltersReturned reçoit le nombre de pilotes de minifiltre trouvés.
[out] NumberFiltersReturned
Pointeur vers une variable allouée par l’appelant qui reçoit le nombre de pointeurs de filtre opaque retournés dans le tableau vers lequel pointe le paramètre FilterList . Si la valeur du paramètre FilterListSize est trop petite et que FilterList n’a pas la valeur NULL en entrée, FltEnumerateFilters retourne STATUS_BUFFER_TOO_SMALL et définit NumberFiltersReturned pour pointer vers le nombre de pilotes de minifiltre trouvés. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.
Valeur retournée
FltEnumerateFilters retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :
Code de retour | Description |
---|---|
|
La mémoire tampon vers laquelle pointe le paramètre FilterList n’est pas assez grande pour stocker les informations demandées. Il s’agit d’un code d’erreur. |
Remarques
Étant donné que les filtres peuvent s’inscrire à tout moment, il n’est pas garanti que deux appels à FltEnumerateFilters retournent le même résultat.
FltEnumerateFilters ajoute une référence d’exécution à chacun des pointeurs de filtre opaque retournés dans le tableau vers lequel pointe le paramètre FilterList . Lorsque ces pointeurs ne sont plus nécessaires, l’appelant doit les libérer en appelant FltObjectDereference sur chacun d’eux. Ainsi, chaque appel réussi à FltEnumerateFilters doit être mis en correspondance par un appel suivant à FltObjectDereference pour chaque pointeur de filtre retourné.
Pour répertorier les informations de filtre pour tous les pilotes de minifiltre inscrits, appelez FltEnumerateFilterInformation.
Pour énumérer les instances de tous les pilotes de minifiltre sur tous les volumes, appelez FltEnumerateInstances.
Pour énumérer tous les volumes connus du Gestionnaire de filtres, appelez FltEnumerateVolumes.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | fltkernel.h (inclure Fltkernel.h) |
Bibliothèque | FltMgr.lib |
IRQL | <= APC_LEVEL |