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