Fonction FltGetVolumeInformation (fltkernel.h)

La routine FltGetVolumeInformation fournit des informations sur un volume donné.

Syntaxe

NTSTATUS FLTAPI FltGetVolumeInformation(
  [in]  PFLT_VOLUME                     Volume,
  [in]  FILTER_VOLUME_INFORMATION_CLASS InformationClass,
  [out] PVOID                           Buffer,
  [in]  ULONG                           BufferSize,
  [out] PULONG                          BytesReturned
);

Paramètres

[in] Volume

Pointeur opaque pour le volume. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

[in] InformationClass

Type d’informations demandées. Ce paramètre est obligatoire et doit être 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 . Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

[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. Ce paramètre est obligatoire.

[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, FltGetVolumeInformation 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 avoir la valeur NULL.

Valeur retournée

FltGetVolumeInformation retourne STATUS_SUCCESS ou un code NTSTATUS status approprié, comme l’un des éléments suivants :

Code de retour Description
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_BUFFER_TOO_SMALL
La mémoire tampon vers laquelle pointe le paramètre Buffer n’est pas assez grande pour stocker les informations demandées. Il s’agit d’un code d’erreur.

Remarques

Étant donné un pointeur de volume opaque, tel que celui retourné par la routine FltEnumerateVolumes , la routine FltGetVolumeInformation fournit des informations sur le volume pointé vers le pointeur de volume opaque, transmis via le paramètre Volume . Notez que l’appelant doit finalement libérer le pointeur de volume opaque en appelant la routine FltObjectDereference .

La routine FltGetVolumeInformation retourne des informations pour un volume unique. Toutefois, étant donné une liste de pointeurs de volume opaques, la routine peut être utilisée de manière itérative pour créer une liste des structures d’informations de volume correspondantes. Dans une telle liste, il est possible que deux structures ou plus contiennent des noms de volume identiques. Pour plus d’informations, consultez Présentation des énumérations de volumes avec des noms de volumes en double.

Pour répertorier les informations de volume pour tous les volumes connus du gestionnaire de filtres, appelez FltEnumerateVolumeInformation.

La liste suivante contient des informations connexes, qui peuvent être utilisées :

  • Pour énumérer tous les pilotes de minifiltre inscrits dans le système, appelez la routine FltEnumerateFilters .
  • Pour obtenir des informations sur les instances de pilotes de minifiltre attachées à un volume donné, appelez la routine FltEnumerateInstanceInformationByVolume .
  • Pour énumérer les instances de pilote de minifiltre pour un pilote ou un volume de minifiltre donné, appelez la routine FltEnumerateInstances .
  • Pour énumérer tous les volumes du système, appelez la routine FltEnumerateVolumes .
  • Pour obtenir un pointeur opaque pour le volume représenté par un objet de périphérique de volume (VDO) donné, appelez la routine FltGetVolumeFromDeviceObject .
  • Pour obtenir un pointeur opaque pour le volume sur lequel réside un flux de fichiers donné, appelez la routine FltGetVolumeFromFileObject .
  • Pour obtenir un pointeur opaque pour le volume auquel un pilote de minifiltre donné instance est attaché, appelez la routine FltGetVolumeFromInstance.
  • Pour obtenir un pointeur opaque pour le volume dont le nom correspond à un nom de volume donné, appelez la routine FltGetVolumeFromName .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Cette routine est disponible à partir de Windows Vista.
Plateforme cible Universal
En-tête fltkernel.h (inclure FltKernel.h)
Bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Voir aussi

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FLT_RELATED_OBJECTS

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumeInformation

FltEnumerateVolumes

FltGetVolumeFromDeviceObject

FltGetVolumeFromFileObject

FltGetVolumeFromInstance

FltGetVolumeFromName