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
STATUS_BUFFER_TOO_SMALL
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

Voir aussi

FltEnumerateFilterInformation

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference