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 |