Partager via


Fonction FltGetVolumeFromDeviceObject (fltkernel.h)

La routine FltGetVolumeFromDeviceObject retourne un pointeur opaque pour le volume représenté par un objet de périphérique de volume (VDO).

Syntaxe

NTSTATUS FLTAPI FltGetVolumeFromDeviceObject(
  [in]  PFLT_FILTER    Filter,
  [in]  PDEVICE_OBJECT DeviceObject,
  [out] PFLT_VOLUME    *RetVolume
);

Paramètres

[in] Filter

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

[in] DeviceObject

Pointeur vers l’objet de périphérique de volume.

[out] RetVolume

Pointeur vers une variable allouée par l’appelant qui reçoit un pointeur opaque pour le volume. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

Valeur retournée

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

Code de retour Description
STATUS_FLT_DELETING_OBJECT Le volume est en train d’être détruit. Il s’agit d’un code d’erreur.
STATUS_INVALID_PARAMETER L’objet de périphérique de volume spécifié dans le paramètre DeviceObject n’était pas un pointeur d’objet d’appareil de volume valide ou aucun volume correspondant n’a été trouvé. Il s’agit d’un code d’erreur.

Remarques

Le paramètre DeviceObject peut être un pointeur vers un filtre ou un objet VDO (Volume Device Object) de système de fichiers. S’il pointe vers un objet de périphérique de stockage, FltGetVolumeFromDeviceObject retourne STATUS_INVALID_PARAMETER.

Pour plus d’informations sur les objets d’appareil de volume, consultez Piles du système de fichiers.

FltGetVolumeFromDeviceObject ajoute une référence d’exécution au pointeur de volume opaque retourné dans le paramètre RetVolume . Lorsque ce pointeur n’est plus nécessaire, l’appelant doit le libérer en appelant FltObjectDereference. Ainsi, chaque appel réussi à FltGetVolumeFromDeviceObject doit être mis en correspondance par un appel ultérieur à FltObjectDereference.

Pour obtenir un pointeur vers l’objet d’appareil pour un volume donné, appelez FltGetDeviceObject.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête fltkernel.h (inclure Fltkernel.h)
Bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Voir aussi

FltGetDeviceObject

FltGetDiskDeviceObject

FltObjectDereference