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 (nonpersistent) (ou cible) du 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 serait « \Device\HarddiskVolume1 ».
La prise en charge de ce 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 type MOUNTDEV_NAME de longueur variable au début de la mémoire tampon à Irp->AssociatedIrp.SystemBuffer. Le nom de l’appareil doit être inséré à l’adresse pointée par le Name membre de cette structure.
Longueur de la mémoire tampon de sortie
Parameters.DeviceIoControl.OutputBufferLength à 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 d’informations est défini sur FIELD_OFFSET(MOUNTDEV_NAME, Name) + output->NameLength, ou autrement, output->NameLength + sizeof(USHORT), où la sortie pointe vers la mémoire tampon à 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 Status 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 Informations de sur sizeof(MOUNTDEV_NAME)
et le champ Status sur STATUS_BUFFER_OVERFLOW. En outre, le client du gestionnaire de montage remplit le membre NameLength de la structure MOUNTDEV_NAME.
Remarques
Comme meilleure pratique, l’implémenteur ne doit pas synchroniser les threads et ne doit pas effectuer d’appels de fonction IPC (Blocage et/ou Interprocess Communication).
Pour plus d’informations, consultez prise en charge des demandes mount Manager dans un pilote de classe de stockage.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | mountmgr.h (include Mountmgr.h) |