Fonction FltEnumerateVolumeInformation (fltkernel.h)

La routine FltEnumerateVolumeInformation fournit des informations sur les volumes connus du gestionnaire de filtres.

Syntaxe

NTSTATUS FLTAPI FltEnumerateVolumeInformation(
  [in]  PFLT_FILTER                     Filter,
  [in]  ULONG                           Index,
  [in]  FILTER_VOLUME_INFORMATION_CLASS InformationClass,
  [out] PVOID                           Buffer,
  [in]  ULONG                           BufferSize,
  [out] PULONG                          BytesReturned
);

Paramètres

[in] Filter

Pointeur de filtre opaque pour le pilote minifilter. Ce pointeur identifie de façon unique le pilote minifilter et reste constant tant que le pilote minifilter est chargé.

[in] Index

Index de base zéro du volume pour lequel les informations sont demandées.

[in] InformationClass

Type d’informations demandées. Ce paramètre peut avoir l’une des valeurs suivantes.

Valeur Signification
FilterVolumeBasicInformation Le paramètre Buffer reçoit une structure FILTER_VOLUME_BASIC_INFORMATION pour le volume.
FilterVolumeStandardInformation Le paramètre Buffer reçoit une structure FILTER_VOLUME_STANDARD_INFORMATION pour le volume. Cette structure est disponible à partir de Windows Vista.

[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, FltEnumerateVolumeInformation 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

FltEnumerateVolumeInformation 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. Il s’agit d’un code d’erreur.
STATUS_FLT_DELETING_OBJECT
Un volume correspondant a été trouvé, mais il est en cours de déclassement. Il s’agit d’un code d’erreur.
STATUS_INVALID_PARAMETER
Une valeur non valide a été spécifiée pour le paramètre InformationClass . Par exemple, si FilterVolumeStandardInformation est spécifié sur un système d’exploitation antérieur à Windows Vista, la routine retourne STATUS_INVALID_PARAMETER. Il s’agit d’un code d’erreur.
STATUS_NO_MORE_ENTRIES
Il n’y a plus d’entrées dans la liste globale des volumes. Il s’agit d’un code d’avertissement.

Remarques

L’utilisation du paramètre Index est simplement un moyen pour la routine FltEnumerateVolumeInformation de sélectionner parmi les volumes de la liste globale des volumes du gestionnaire de filtres. Deux appels à FltEnumerateVolumeInformation avec la même valeur du paramètre Index ne retournent pas nécessairement le même résultat, car les volumes peuvent être montés ou démontés à tout moment.

Si FltEnumerateVolumeInformation est utilisé pour créer une liste de structures d’informations de volume, il est possible que deux ou plusieurs de ces structures contiennent des noms de volumes identiques. Pour plus d’informations, consultez Présentation des énumérations de volumes avec des noms de volumes en double.

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.

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

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête fltkernel.h (incluez FltKernel.h)
Bibliothèque FltMgr.lib
IRQL <= APC_LEVEL

Voir aussi

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation