IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)
Ao receber esse IOCTL, um driver de cliente deve fornecer o nome do dispositivo (ou destino) não persistente para o volume. O gerenciador de montagem usa o nome do dispositivo retornado pelo cliente como o destino de um link simbólico. Um exemplo de nome de dispositivo seria "\Device\HarddiskVolume1".
O suporte para esse IOCTL pelos clientes do gerenciador de montagem é obrigatório.
Código principal
Buffer de entrada
Nenhum.
Comprimento do buffer de entrada
Nenhum.
Buffer de saída
O cliente do gerenciador de montagem retorna uma estrutura de comprimento variável do tipo MOUNTDEV_NAME no início do buffer em Irp-AssociatedIrp.SystemBuffer>. O nome do dispositivo deve ser inserido no endereço apontado pelo membro Name dessa estrutura.
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(MOUNTDEV_NAME)
.
Bloco de status
O campo Informações é definido como FIELD_OFFSET(MOUNTDEV_NAME, Nome) + output-NameLength> ou, como alternativa, output-NameLength> + sizeof(USHORT), em que a saída aponta para o buffer em Irp-AssociatedIrp.SystemBuffer>.
Se a operação for bem-sucedida, o cliente do gerenciador de montagem deverá definir o campo Informações com o comprimento da cadeia de caracteres terminada em NULL que contém o nome do dispositivo e o campo Status como STATUS_SUCCESS.
Se o buffer de saída for muito pequeno para conter o nome do dispositivo, o cliente do gerenciador de montagem deverá definir o campo sizeof(MOUNTDEV_NAME)
Informações como e o campo Status como STATUS_BUFFER_OVERFLOW. Além disso, o cliente do gerenciador de montagem preenche o membro NameLength da estrutura MOUNTDEV_NAME .
Comentários
Como prática recomendada, o implementador não deve sincronizar threads e não deve fazer chamadas de função de bloqueio e/ou comunicação entre processos (IPC).
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) |