IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER IOCTL (mountmgr.h)
Este IOCTL verifica se o volume especificado tem uma letra da unidade. Se ele já tiver uma letra da unidade ou se o volume tiver uma entrada de banco de dados especial do gerenciador de montagem indicando que não requer uma letra da unidade, essa rotina retornará a letra da unidade atual (se houver uma) e não fará nada. Se o volume especificado não tiver uma letra da unidade e não tiver uma entrada de banco de dados especial do gerenciador de montagem indicando que ele não requer uma letra da unidade, a próxima letra da unidade disponível será atribuída ao volume. Se o nome do dispositivo não persistente do volume começar com "\Dispositivo\Disquete", o gerenciador de montagem verificará se há letras de unidade disponíveis começando com a letra "A". Se o nome do volume começar com "\Device\CdRom", o gerenciador de montagem verificará se há letras de unidade disponíveis começando com a letra da unidade "D". Em todos os outros casos, o gerenciador de montagem começa com a letra da unidade "C".
Código principal
Buffer de entrada
O cliente do gerenciador de montagem inicializa a estrutura MOUNTMGR_DRIVE_LETTER_TARGET no início do buffer em Irp-AssociatedIrp.SystemBuffer>. O cliente deve inserir o nome do volume de destino no endereço apontado pelo membro DeviceName[] dessa estrutura. O nome do volume de destino é o nome do objeto de dispositivo não persistente associado ao volume (por exemplo, "\Device\HarddiskVolume1").
Comprimento do buffer de entrada
Parameters.DeviceIoControl.InputBufferLength no local da pilha de E/S do IRP indica o tamanho, em bytes, do buffer de entrada, que deve ser maior ou igual a sizeof(MOUNTMGR_DRIVE_LETTER_TARGET)
.
Buffer de saída
O gerenciador de montagem insere a letra da unidade atual ou a letra da unidade recém-atribuída (consulte a discussão anterior) na estrutura MOUNTMGR_DRIVE_LETTER_INFORMATION no início do buffer em Irp-AssociatedIrp.SystemBuffer>.
Comprimento do buffer de saída
Parameters.DeviceIoControl.OutputBufferLength no local da pilha de E/S do IRP indica o tamanho, em bytes, do buffer de saída, que deve ser maior ou igual a sizeof(MOUNTMGR_DRIVE_LETTER_INFORMATION)
.
Buffer de entrada/saída
N/D
Comprimento do buffer de entrada/saída
N/D
Bloco de status
Se a operação for bem-sucedida, o campo Status será definido como STATUS_SUCCESS.
Se InputBufferLength for menor que sizeof(MOUNTMGR_DRIVE_LETTER_TARGET)
ou se OutputBufferLength for menor que sizeof(MOUNTMGR_DRIVE_LETTER_INFORMATION)
, o campo Status será definido como STATUS_INVALID_PARAMETER.
Comentários
Para obter mais informações, consulte Suporte a solicitações do Mount Manager em um driver de classe de armazenamento.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | mountmgr.h (inclua Mountmgr.h) |