IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER IOCTL (mountmgr.h)
Ce IOCTL vérifie si le volume donné a une lettre de lecteur. S’il a déjà une lettre de lecteur ou si le volume a une entrée de base de données de gestionnaire de montage spéciale indiquant qu’il n’a pas besoin d’une lettre de lecteur, cette routine retourne la lettre de lecteur actuelle (le cas échéant) et ne fait rien. Si le volume donné n’a pas de lettre de lecteur et n’a pas d’entrée de base de données de gestionnaire de montage spéciale indiquant qu’il ne nécessite pas de lettre de lecteur, la lettre de lecteur disponible suivante est affectée au volume. Si le nom de l’appareil non persistant du volume commence par « \Device\Floppy », le gestionnaire de montage case activée pour les lettres de lecteur disponibles en commençant par la lettre « A ». Si le nom du volume commence par « \Device\CdRom », le gestionnaire de montage case activée pour les lettres de lecteur disponibles en commençant par la lettre de lecteur « D ». Dans tous les autres cas, le gestionnaire de montage commence par la lettre de lecteur « C ».
Code principal
Mémoire tampon d'entrée
Le client mount Manager initialise la structure MOUNTMGR_DRIVE_LETTER_TARGET, définie dans Mountmgr.h, au début de la mémoire tampon à l’emplacement Irp-AssociatedIrp.SystemBuffer>. Le client doit insérer le nom du volume cible à l’adresse pointée par le membre DeviceName[] de cette structure. Le nom du volume cible est le nom de l’objet d’appareil non persistant associé au volume (par exemple, « \Device\HarddiskVolume1 »).
Longueur de la mémoire tampon d’entrée
Parameters.DeviceIoControl.InputBufferLength dans l’emplacement de la pile d’E/S de l’IRP indique la taille, en octets, de la mémoire tampon d’entrée, qui doit être supérieure ou égale à sizeof(MOUNTMGR_DRIVE_LETTER_TARGET).
Mémoire tampon de sortie
Le gestionnaire de montage insère la lettre de lecteur actuelle ou la lettre de lecteur nouvellement affectée (voir la discussion précédente) dans la structure MOUNTMGR_DRIVE_LETTER_INFORMATION, définie dans Mountmgr.h, au début de la mémoire tampon sur Irp-AssociatedIrp.SystemBuffer>.
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(MOUNTMGR_DRIVE_LETTER_INFORMATION).
Bloc d’état
Si l’opération réussit , le champ État est défini sur STATUS_SUCCESS.
Si InputBufferLength est inférieur à sizeof(MOUNTMGR_DRIVE_LETTER_TARGET) ou si OutputBufferLength est inférieur à sizeof(MOUNTMGR_DRIVE_LETTER_INFORMATION), le champ État est défini sur STATUS_INVALID_PARAMETER.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | mountmgr.h (inclure Mountmgr.h) |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour