Partager via


FltEnumerateFilters, fonction (fltkernel.h)

La routine FltEnumerateFilters énumère tous les pilotes de minifilter 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 par l’appelant qui reçoit un tableau de pointeurs de filtre opaques. Ce paramètre est facultatif et peut être NULL si la valeur de FilterListSize paramètre est égale à zéro. Si FilterListSize est égal à zéro lors de l’entrée et FilterList est NULL, le paramètre NumberFiltersReturned reçoit le nombre de pilotes minifilter trouvés.

[in] FilterListSize

Nombre de pointeurs de filtre opaques que la mémoire tampon que le FilterList points de paramètre à contenir. Ce paramètre est facultatif et peut être égal à zéro. Si FilterListSize est égal à zéro lors de l’entrée et FilterList est NULL, le paramètre NumberFiltersReturned reçoit le nombre de pilotes minifilter 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 FilterList n’est pas NULL lors de l’entrée, FltEnumerateFilters retourne STATUS_BUFFER_TOO_SMALL et définit NumberFiltersReturned pour pointer vers le nombre de pilotes minifilter trouvés. Ce paramètre est obligatoire et ne peut pas être NULL.

Valeur de retour

FltEnumerateFilters retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :

Retourner le code Description
STATUS_BUFFER_TOO_SMALL
Mémoire tampon pour laquelle le FilterList points de paramètre n’est pas suffisamment volumineux 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, deux appels à FltEnumerateFilters ne sont pas garantis pour retourner 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 auquel 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 ultérieur à FltObjectDereference pour chaque pointeur de filtre retourné.

Pour répertorier les informations de filtre pour tous les pilotes minifilter inscrits, appelez FltEnumerateFilterInformation.

Pour énumérer les instances de tous les pilotes minifilter sur tous les volumes, appelez FltEnumerateInstances.

Pour énumérer tous les volumes connus du Gestionnaire de filtres, appelez FltEnumerateVolumes.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête fltkernel.h (include Fltkernel.h)
bibliothèque FltMgr.lib
IRQL <= APC_LEVEL

Voir aussi

FltEnumerateFilterInformation

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference