Fonction FltGetDeviceObject (fltkernel.h)

La routine FltGetDeviceObject retourne un pointeur vers l’objet de périphérique de volume (VDO) du Gestionnaire de filtres 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 d’objet de périphérique de volume. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.

Valeur retournée

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

Code de retour 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 de périphérique de volume (VDO) du Gestionnaire de filtres pour le volume donné.

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

Le VDO du Gestionnaire de filtres n’est pas identique à l’objet de périphérique de disque du pilote de stockage sous-jacent ou au VDO du système de fichiers de base. Pour obtenir un pointeur vers l’objet de périphérique 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 d’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 suivant à ObDereferenceObject.

Configuration requise

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

Voir aussi

FltGetDiskDeviceObject

FltGetVolumeFromDeviceObject

IoGetDeviceAttachmentBaseRef

ObDereferenceObject