Partager via


FltEnumerateInstances, fonction (fltkernel.h)

La routine FltEnumerateInstances énumère les instances de pilote minifilter pour un pilote ou un volume minifilter donné.

Syntaxe

NTSTATUS FLTAPI FltEnumerateInstances(
  [in, optional] PFLT_VOLUME   Volume,
  [in, optional] PFLT_FILTER   Filter,
  [out]          PFLT_INSTANCE *InstanceList,
  [in]           ULONG         InstanceListSize,
  [out]          PULONG        NumberInstancesReturned
);

Paramètres

[in, optional] Volume

Pointeur opaque pour le volume pour lequel l’appelant souhaite énumérer les instances de pilote minifilter. Si NULL, les instances de tous les volumes sont énumérées. Doit êtreNULL non si de filtre est NULL.

[in, optional] Filter

Pointeur de filtre opaque pour le pilote minifilter dont les instances doivent être énumérées. Si NULL, les instances de tous les pilotes minifilter sont énumérées. Doit êtreNULL si volume est NULL .

[out] InstanceList

Pointeur vers une mémoire tampon allouée par l’appelant qui reçoit un tableau de pointeurs d’instance opaques.

[in] InstanceListSize

Nombre de pointeurs d’instance opaques que la mémoire tampon qui InstanceList points à contenir.

[out] NumberInstancesReturned

Pointeur vers une variable allouée par l’appelant qui reçoit le nombre de pointeurs d’instance opaque retournés dans le tableau vers lequel InstanceList pointe. Si InstanceListSize est trop petit, FltEnumerateInstances retourne STATUS_BUFFER_TOO_SMALL et définit NumberInstancesReturned pour pointer vers le nombre d’instances correspondantes trouvées.

Valeur de retour

FltEnumerateInstances retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, comme l’une des valeurs suivantes :

Retourner le code Description
STATUS_BUFFER_TOO_SMALL
Mémoire tampon pour laquelle le paramètre InstanceList pointe vers n’est pas suffisamment volumineux pour stocker les informations demandées. Il s’agit d’un code d’erreur.
STATUS_INVALID_PARAMETER
volume et filtre ne peuvent pas tous les deux être NULL. Il s’agit d’un code d’erreur.

Remarques

Étant donné que les instances de pilote minifilter de la liste d’instances peuvent changer à tout moment, deux appels à FltEnumerateInstances avec le même volume et valeurs de filtre ne sont pas garantis pour retourner le même résultat.

FltEnumerateInstances ajoute une référence d’exécution à chacun des pointeurs d’instance opaque retournés dans le tableau auquel pointe le paramètre InstanceList . 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 à FltEnumerateInstances doit être mis en correspondance par un appel ultérieur à FltObjectDereference pour chaque pointeur d’instance retourné.

Pour énumérer tous les pilotes minifilter inscrits, appelez FltEnumerateFilters.

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

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

Pour obtenir des informations de filtre pour un pilote minifilter donné, appelez FltGetFilterInformation.

Pour énumérer toutes les instances d’un pilote minifilter donné, appelez FltEnumerateInstanceInformationByFilter.

Pour énumérer toutes les instances de pilote minifilter sur un volume donné, appelez FltEnumerateInstanceInformationByVolume.

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

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference