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