Partager via


FltGetDeviceObject, fonction (fltkernel.h)

La routine FltGetDeviceObject retourne un pointeur vers l’objet d’appareil de volume du Gestionnaire de filtres (VDO) pour un volume donné.

Syntaxe

NTSTATUS FLTAPI FltGetDeviceObject(
  [in]  PFLT_VOLUME    Volume,
  [out] PDEVICE_OBJECT *DeviceObject
);

Paramètres

[in] Volume

Pointeur opaque pour le volume.

[out] DeviceObject

Pointeur vers une variable allouée par l’appelant qui reçoit le pointeur de l’objet d’appareil de volume. Ce paramètre est obligatoire et ne peut pas être NULL.

Valeur de retour

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

Retourner le code Description
STATUS_FLT_NO_DEVICE_OBJECT L’objet d’appareil demandé n’existe pas pour le volume donné. Il s’agit d’un code d’erreur.

Remarques

FltGetDeviceObject retourne un pointeur vers l’objet d’appareil de volume du Gestionnaire de filtres (VDO) pour le volume donné.

Pour plus d’informations sur les objets d’appareil en volume, consultez piles de systèmes de fichiers.

Le VDO du Gestionnaire de filtres n’est pas identique à l’objet de périphérique disque du pilote de stockage sous-jacent ou au VDO du système de fichiers de base. Pour obtenir un pointeur vers l’objet d’appareil de disque, appelez FltGetDiskDeviceObject sur le volume spécifié dans le paramètre volume. Pour obtenir un pointeur vers le VDO du système de fichiers de base, appelez IoGetDeviceAttachmentBaseRef sur le RetDeviceObject retourné par FltGetDeviceObject.

Pour obtenir un pointeur opaque pour le volume correspondant pour un objet d’appareil donné, appelez FltGetVolumeFromDeviceObject.

FltGetDeviceObject incrémente le nombre de références sur le pointeur de l’objet d’appareil retourné. Lorsque ce pointeur n’est plus nécessaire, l’appelant doit décrémenter ce nombre de références en appelant ObDereferenceObject. Ainsi, chaque appel réussi à FltGetDeviceObject doit être mis en correspondance par un appel ultérieur à ObDereferenceObject.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête fltkernel.h (include Fltkernel.h)
bibliothèque Fltmgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

Voir aussi

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject