IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)
Lors de la réception de ce IOCTL, un pilote client doit fournir le nom de l’appareil (ou de la cible) (non persistant) pour le volume. Le gestionnaire de montage utilise le nom de l’appareil retourné par le client comme cible d’un lien symbolique. Un exemple de nom d’appareil est « \Device\HarddiskVolume1 ».
La prise en charge de cet IOCTL par les clients du gestionnaire de montage est obligatoire.
Code principal
Mémoire tampon d'entrée
Aucun.
Longueur de la mémoire tampon d’entrée
Aucun.
Mémoire tampon de sortie
Le client du gestionnaire de montage retourne une structure de longueur variable de type MOUNTDEV_NAME au début de la mémoire tampon dans Irp-AssociatedIrp.SystemBuffer>. Le nom de l’appareil doit être inséré à l’adresse pointée par le membre Name de cette structure.
Longueur de la mémoire tampon de sortie
Parameters.DeviceIoControl.OutputBufferLength dans l’emplacement de la pile d’E/S de l’IRP indique la taille, en octets, de la mémoire tampon de sortie, qui doit être supérieure ou égale à sizeof(MOUNTDEV_NAME)
.
Bloc d’état
Le champ Informations est défini sur FIELD_OFFSET(MOUNTDEV_NAME, Name) + output-NameLength>, ou sur output-NameLength> + sizeof(USHORT), où la sortie pointe vers la mémoire tampon sur Irp-AssociatedIrp.SystemBuffer>.
Si l’opération réussit, le client du gestionnaire de montage doit définir le champ Informations sur la longueur de la chaîne terminée par NULL contenant le nom de l’appareil et le champ État sur STATUS_SUCCESS.
Si la mémoire tampon de sortie est trop petite pour contenir le nom de l’appareil, le client du gestionnaire de montage doit définir le champ sizeof(MOUNTDEV_NAME)
Informations sur et le champ État sur STATUS_BUFFER_OVERFLOW. En outre, le client du gestionnaire de montage remplit le membre NameLength de la structure MOUNTDEV_NAME .
Remarques
En guise de bonne pratique, l’implémenteur ne doit pas synchroniser les threads et ne doit pas effectuer d’appels de fonction de blocage et/ou de communication interprocesseur (IPC).
Pour plus d’informations, consultez Prise en charge des demandes mount Manager dans un pilote de classe de stockage.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | mountmgr.h (include Mountmgr.h) |