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 |
---|---|
|
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. |
|
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
FltEnumerateInstanceInformationByFilter