Fonction FltEnumerateInstances (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 la valeur est NULL, les instances de tous les volumes sont énumérées. Doit être non NULL si Filter a la valeur NULL.
[in, optional] Filter
Pointeur de filtre opaque pour le pilote minifilter dont les instances doivent être énumérées. Si la valeur est NULL, les instances de tous les pilotes minifilter sont énumérées. Doit être non NULL si Volume a la valeur NULL.
[out] InstanceList
Pointeur vers une mémoire tampon allouée à l’appelant qui reçoit un tableau de pointeurs instance opaques.
[in] InstanceListSize
Nombre de pointeurs de instance opaques que la mémoire tampon vers laquelle Pointe InstanceList peut contenir.
[out] NumberInstancesReturned
Pointeur vers une variable allouée à l’appelant qui reçoit le nombre de pointeurs opaques instance retournés dans le tableau vers lequel Pointe InstanceList. Si InstanceListSize est trop petit, FltEnumerateInstances retourne STATUS_BUFFER_TOO_SMALL et définit NumberInstancesReturned pour qu’il pointe vers le nombre d’instances correspondantes trouvées.
Valeur retournée
FltEnumerateInstances retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, telle que l’une des valeurs suivantes :
Code de retour | Description |
---|---|
|
La mémoire tampon vers laquelle pointe le paramètre InstanceList n’est pas suffisamment grande pour stocker les informations demandées. Il s’agit d’un code d’erreur. |
|
Volume et Filtre ne peuvent pas tous les deux avoir la valeur NULL. Il s’agit d’un code d’erreur. |
Remarques
Étant donné que les instances de pilote minifilter dans la liste instance peuvent changer à tout moment, deux appels à FltEnumerateInstances avec les mêmes valeurs Volume et Filter ne sont pas garantis pour retourner le même résultat.
FltEnumerateInstances ajoute une référence d’exécution à chacun des pointeurs de instance opaques retournés dans le tableau vers lequel 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 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.
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
FltEnumerateInstanceInformationByFilter