Partilhar via


IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER IOCTL (mountmgr.h)

Este IOCTL verifica se o volume especificado tem uma letra de unidade. Se ele já tiver uma letra de unidade ou se o volume tiver uma entrada de banco de dados especial do mount manager indicando que ele não requer uma letra de 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 de unidade e não tiver uma entrada de banco de dados especial do mount manager indicando que ele não requer uma letra de 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 "\Device\Floppy", 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 "D" da unidade. Em todos os outros casos, o gerenciador de montagem começa com a letra "C" da unidade.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

O cliente do gerenciador de montagem inicializa a estrutura de MOUNTMGR_DRIVE_LETTER_TARGET no início do buffer em >AssociatedIrp.SystemBuffer. O cliente deve inserir o nome do volume de destino no endereço apontado pelo DeviceName[] membro 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 >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/A

Comprimento do buffer de entrada/saída

N/A

Bloco de status

Se a operação for bem-sucedida, o campo status do 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.

Observações

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)

Consulte também

MOUNTMGR_DRIVE_LETTER_TARGET