Partager via


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 recherche 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 recherche 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

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d'entrée

Le client mount manager initialise la structure MOUNTMGR_DRIVE_LETTER_TARGET au début de la mémoire tampon sur 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 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).

Mémoire tampon d’entrée/sortie

N/A

Longueur de la mémoire tampon d’entrée/sortie

N/A

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.

Remarques

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 (inclure Mountmgr.h)

Voir aussi

MOUNTMGR_DRIVE_LETTER_TARGET