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 |
---|---|
|
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 |