Partager via


FltEnumerateVolumes, fonction (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 par 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 en entrée et VolumeList est NULL, NumberVolumesReturned reçoit le nombre de volumes trouvés.

[in] VolumeListSize

Nombre de pointeurs de filtre opaques que la mémoire tampon qui VolumeList points à contenir. Ce paramètre est facultatif et peut être égal à zéro. Si VolumeListSize est égal à zéro en entrée et VolumeList est 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 opaque retournés dans le tableau vers lequel VolumeList pointe. Si VolumeListSize est trop petit et volumeList n’est pas NULL lors de l’entrée, FltEnumerateVolumes retourne STATUS_BUFFER_TOO_SMALL et définit NumberVolumesReturned pour pointer vers le nombre de volumes trouvés. Ce paramètre est obligatoire et ne peut pas être NULL.

Valeur de retour

FltEnumerateVolumes retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :

Retourner le code Description
STATUS_BUFFER_TOO_SMALL
Mémoire tampon pour laquelle le paramètre VolumeList pointe vers n’est pas suffisamment grand 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, deux appels à FltEnumerateVolumes ne sont pas garantis pour retourner le même résultat.

FltEnumerateVolumes ajoute une référence d’exécution à chacun des pointeurs de volume opaque retournés dans le tableau vers lequel VolumeList pointe. 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 opaque 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.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête fltkernel.h (include FltKernel.h)
bibliothèque FltMgr.lib
IRQL <= APC_LEVEL

Voir aussi

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumeInformation

FltGetVolumeInformation

FltObjectDereference