Fonction FltEnumerateInstanceInformationByVolumeName (fltkernel.h)

La routine FltEnumerateInstanceInformationByVolumeName fournit des informations sur les instances de pilotes minifilter et les pilotes de filtre hérités qui sont attachés au volume avec le nom spécifié.

Syntaxe

NTSTATUS FLTAPI FltEnumerateInstanceInformationByVolumeName(
  [in]  PUNICODE_STRING            VolumeName,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

Paramètres

[in] VolumeName

Nom du volume pour lequel énumérer les instances de filtre.

[in] Index

Index de base zéro du pilote minifilter instance ou pilote de filtre hérité pour lequel les informations sont demandées.

[in] InformationClass

Type d’informations à retourner pour le pilote minifilter instance ou le pilote de filtre hérité. Ce paramètre peut avoir l’une des valeurs suivantes.

Valeur Signification
InstanceBasicInformation La mémoire tampon pointée par le paramètre Buffer reçoit une structure INSTANCE_BASIC_INFORMATION pour un minifiltre instance. Les pilotes de filtre hérités sont ignorés.
InstanceFullInformation La mémoire tampon pointée par le paramètre Buffer reçoit une structure INSTANCE_FULL_INFORMATION pour un minifiltre instance. Les pilotes de filtre hérités sont ignorés.
InstancePartialInformation La mémoire tampon vers laquelle pointe le paramètre Buffer reçoit une structure INSTANCE_PARTIAL_INFORMATION pour un minifiltre instance. Les pilotes de filtre hérités sont ignorés.
InstanceAggregateStandardInformation La mémoire tampon vers laquelle pointe le paramètre Buffer reçoit une structure INSTANCE_AGGREGATE_STANDARD_INFORMATION pour un pilote minifilter instance ou un pilote de filtre hérité.

[out] Buffer

Pointeur vers une mémoire tampon allouée à l’appelant qui reçoit les informations demandées. Le type des informations retournées dans la mémoire tampon est défini par le paramètre InformationClass .

[in] BufferSize

Taille, en octets, de la mémoire tampon vers laquelle pointe le paramètre Buffer . L’appelant doit définir ce paramètre en fonction de la valeur InformationClass donnée.

[out] BytesReturned

Pointeur vers une variable allouée à l’appelant qui reçoit le nombre d’octets retournés dans la mémoire tampon vers laquelle la mémoire tampon pointe. Si la valeur d’entrée de BufferSize est trop petite, FltEnumerateInstanceInformationByVolumeName retourne STATUS_BUFFER_TOO_SMALL et définit cette variable sur le nombre d’octets requis pour stocker les informations demandées. Ce paramètre est obligatoire et ne peut pas être NULL.

Valeur retournée

FltEnumerateInstanceInformationByVolumeName 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 Buffer n’est pas suffisamment grande pour stocker les informations demandées.
STATUS_FLT_DELETING_OBJECT
Un minifiltre correspondant instance a été trouvé, mais il est en cours de déclassement. Notez que cette valeur de retour ne s’applique pas aux pilotes de filtre hérités, car les pilotes de filtre hérités ne peuvent pas être déchargés.
STATUS_INVALID_PARAMETER
Une valeur non valide a été spécifiée pour le paramètre InformationClass .

-ou-

VolumeName contient un nom de volume non valide.

STATUS_NO_MORE_ENTRIES
Il n’y a plus d’entrées dans la liste instance/filtre du volume.
STATUS_OBJECT_NAME_NOT_FOUND
Le volume spécifié dans VolumeName n’existe pas.
STATUS_OBJECT_PATH_NOT_FOUND
Le chemin du volume spécifié dans VolumeName n’existe pas.
STATUS_FLT_VOLUME_NOT_FOUND
Aucune instance de filtre n’est attachée au volume spécifié par VolumeName .

-ou-

Le volume spécifié par VolumeName est supprimé du système.

STATUS_FLT_INTERNAL_ERROR
Le volume spécifié par VolumeName a été inscrit, mais aucune instance de filtre n’est attachée.

Remarques

L’utilisation du paramètre Index est simplement un moyen pour FltEnumerateInstanceInformationByVolumeName de sélectionner parmi les instances de pilote minifilter et les pilotes de filtre hérités dans la liste instance/filtre pour le volume spécifié par VolumeName. Étant donné que les instances de pilote minifilter dans la liste instance/filtre peuvent changer à tout moment, deux appels à FltEnumerateInstanceInformationByVolumeName avec les mêmes valeurs Index et VolumeName ne sont pas garantis pour retourner le même résultat.

Cette routine retourne à la fois les informations sur le pilote de filtre hérité et le pilote minifilter instance des informations lorsque la valeur du paramètre InformationClass est InstanceAggregateStandardInformation.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 8.
Plateforme cible Universal
En-tête fltkernel.h (inclure Fltkernel.h)
Bibliothèque FltMgr.lib
IRQL <= APC_LEVEL

Voir aussi

FltEnumerateInstanceInformationByDeviceObject

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume