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 |