IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME IOCTL (mountdev.h)

O suporte para esse IOCTL pelos clientes do gerenciador de montagem é opcional. Alguns clientes do gerenciador de montagem são capazes de acompanhar suas letras de unidade em reinicializações do sistema sem a ajuda do gerenciador de montagem. Esses clientes podem enviar um nome de letra de unidade sugerido ao gerenciador de montagem em resposta a esse IOCTL. O gerenciador de montagem usará o nome sugerido se o banco de dados do gerenciador de montagem ainda não contiver um nome de letra de unidade persistente para o volume do cliente. Caso contrário, ele ignora a sugestão e usa o nome da letra da unidade em seu banco de dados de nome persistente.

Os nomes das letras da unidade devem incluir o caminho completo do link simbólico no namespace do objeto e devem ter a sintaxe ms-DOS tradicional. Por exemplo, a letra da unidade "D" deve ser representada dessa maneira: "\DosDevices\D:". O caminho alternativo do link simbólico de "?? \D:" não pode ser usado, nem abreviações do link simbólico, como "D:".

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de saída

O driver cliente deve colocar uma estrutura de comprimento variável do tipo MOUNTDEV_SUGGESTED_LINK_NAME, definida em moundev.h, no início do buffer em Irp-AssociatedIrp.SystemBuffer>. Começando no endereço do nome do membro da estrutura, o driver cliente deve inserir o nome persistente sugerido.

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

Bloco de status

Se a operação for bem-sucedida, o campo Informações será definido como o número total de bytes retornados e o campo Status será definido como STATUS_SUCCESS.

Se OutputBufferLength for menor que sizeof(MOUNTDEV_SUGGESTED_LINK_NAME), o campo Status será definido como STATUS_INVALID_PARAMETER.

Se OutputBufferLength for menor que o tamanho total dos dados de saída, o campo Status será definido como STATUS_BUFFER_OVERFLOW e o campo Informações será definido como sizeof(MOUNTDEV_SUGGESTED_LINK_NAME).

Comentários

O implementador dessa função não deve ser sincronizado por thread e não deve fazer chamadas de função de bloqueio e/ou comunicação entre processos (IPC).

Requisitos

Requisito Valor
Cabeçalho mountdev.h (inclua Mountdev.h)

Confira também

MOUNTDEV_SUGGESTED_LINK_NAME