Partilhar via


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

IRP_MJ_DEVICE_CONTROL

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)

Confira também

MOUNTMGR_DRIVE_LETTER_TARGET