Fonction FltEnumerateVolumes (fltkernel.h)

La routine FltEnumerateVolumes énumère tous les volumes du système.

Syntaxe

NTSTATUS FLTAPI FltEnumerateVolumes(
  [in]  PFLT_FILTER Filter,
  [out] PFLT_VOLUME *VolumeList,
  [in]  ULONG       VolumeListSize,
  [out] PULONG      NumberVolumesReturned
);

Paramètres

[in] Filter

Pointeur de filtre opaque pour l’appelant. Ce paramètre est obligatoire et ne peut pas être NULL.

[out] VolumeList

Pointeur vers une mémoire tampon allouée à l’appelant qui reçoit un tableau de pointeurs de volume opaques. Ce paramètre est facultatif et peut être NULL si VolumeListSize est égal à zéro. Si VolumeListSize est égal à zéro à l’entrée et Que VolumeList a la valeur NULL, NumberVolumesReturned reçoit le nombre de volumes trouvés.

[in] VolumeListSize

Nombre de pointeurs de filtre opaques que la mémoire tampon vers laquelle VolumeList pointe peut contenir. Ce paramètre est facultatif et peut être égal à zéro. Si VolumeListSize est égal à zéro à l’entrée et Que VolumeList a la valeur NULL, NumberVolumesReturned reçoit le nombre de volumes trouvés.

[out] NumberVolumesReturned

Pointeur vers une variable allouée par l’appelant qui reçoit le nombre de pointeurs de volume opaques retournés dans le tableau vers lequel VolumeList pointe. Si VolumeListSize est trop petit et que VolumeList n’a pas la valeur NULL en entrée, FltEnumerateVolumes retourne STATUS_BUFFER_TOO_SMALL et définit NumberVolumesReturned pour qu’il pointe vers le nombre de volumes trouvés. Ce paramètre est obligatoire et ne peut pas être NULL.

Valeur retournée

FltEnumerateVolumes retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, telle que la suivante :

Code de retour Description
STATUS_BUFFER_TOO_SMALL
La mémoire tampon vers laquelle pointe le paramètre VolumeList n’est pas suffisamment grande pour stocker les informations demandées. Il s’agit d’un code d’erreur.

Remarques

Étant donné que le contenu de la liste de volumes du gestionnaire de filtres peut changer à tout moment, il n’est pas garanti que deux appels à FltEnumerateVolumes retournent le même résultat.

FltEnumerateVolumes ajoute une référence d’arrêt à chacun des pointeurs de volume opaques retournés dans le tableau vers lequel pointe VolumeList . 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 à FltEnumerateVolumes doit être mis en correspondance par un appel ultérieur à FltObjectDereference pour chaque pointeur de volume retourné.

Pour convertir un ou plusieurs pointeurs de volume opaques retournés par le paramètre VolumeList en informations de volume, appelez FltGetVolumeInformation.

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

Pour énumérer tous les pilotes minifilter inscrits, appelez FltEnumerateFilters.

Pour énumérer toutes les instances de pilote minifilter, appelez FltEnumerateInstances.

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 (incluez FltKernel.h)
Bibliothèque FltMgr.lib
IRQL <= APC_LEVEL

Voir aussi

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumeInformation

FltGetVolumeInformation

FltObjectDereference