Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La routine FltGetDiskDeviceObject retourne un pointeur vers l’objet de périphérique de disque associé à un volume donné.
Syntaxe
NTSTATUS FLTAPI FltGetDiskDeviceObject(
[in] PFLT_VOLUME Volume,
[out] PDEVICE_OBJECT *DiskDeviceObject
);
Paramètres
[in] Volume
Pointeur opaque pour le volume. Ce paramètre est obligatoire et ne peut pas être NULL.
[out] DiskDeviceObject
Pointeur vers une variable allouée par l’appelant qui reçoit le pointeur d’objet de l’appareil. En cas d’erreur, ce paramètre n’est pas modifié.
Valeur de retour
FltGetDiskDeviceObject 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
FltGetDiskDeviceObject récupère un pointeur vers l’objet de périphérique de stockage pour le disque physique où réside le volume. L’appareil de stockage n’a pas besoin d’être un disque réel.
FltGetDiskDeviceObject incrémente le nombre de références sur le pointeur d’objet de l’appareil retourné dans DiskDeviceObject. Lorsque ce pointeur n’est plus nécessaire, l’appelant doit décrémenter ce nombre de références en appelant ObDereferenceObject. L’échec de cette opération empêche le système de libérer ou de supprimer l’objet de l’appareil en raison de la référence en attente. Ainsi, chaque appel réussi à FltGetDiskDeviceObject doit être mis en correspondance par un appel ultérieur à ObDereferenceObject.
Un minifilter doit appeler FltGetDiskDeviceObject uniquement dans un rappel lié aux E/S. Sinon, les champs de l’objet d’appareil retournés peuvent ne pas être valides. Cela est le cas dans les routines de rappel telles que InstanceTeardownStartCallback et InstanceTeardownCompleteCallback.
Pour obtenir un pointeur vers l’objet d’appareil de volume du Gestionnaire de filtres (VDO) pour un volume donné, appelez FltGetDeviceObject.
Pour obtenir un pointeur de volume opaque pour le volume représenté par un objet d’appareil de volume, appelez FltGetVolumeFromDeviceObject.
Pour plus d’informations sur les objets d’appareil en volume, consultez piles de systèmes de fichiers.
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 |