Função QueryDosDeviceW (fileapi.h)

Recupera informações sobre nomes de dispositivo MS-DOS. A função pode obter o mapeamento atual para um nome de dispositivo MS-DOS específico. A função também pode obter uma lista de todos os nomes de dispositivo MS-DOS existentes.

Os nomes de dispositivo MS-DOS são armazenados como junções no namespace do objeto. O código que converte um caminho MS-DOS em um caminho correspondente usa essas junções para mapear dispositivos MS-DOS e letras de unidade. A função QueryDosDevice permite que um aplicativo consulte os nomes das junções usadas para implementar o namespace do dispositivo MS-DOS, bem como o valor de cada junção específica.

Sintaxe

DWORD QueryDosDeviceW(
  [in, optional] LPCWSTR lpDeviceName,
  [out]          LPWSTR  lpTargetPath,
  [in]           DWORD   ucchMax
);

Parâmetros

[in, optional] lpDeviceName

Uma cadeia de caracteres de nome de dispositivo MS-DOS especificando o destino da consulta. O nome do dispositivo não pode ter uma barra invertida à direita; por exemplo, use "C:", não "C:\".

Este parâmetro pode ser NULL. Nesse caso, a função QueryDosDevice armazenará uma lista de todos os nomes de dispositivo MS-DOS existentes no buffer apontado por lpTargetPath.

[out] lpTargetPath

Um ponteiro para um buffer que receberá o resultado da consulta. A função preenche esse buffer com uma ou mais cadeias de caracteres terminadas em nulo. A cadeia de caracteres final terminada em nulo é seguida por um NULL adicional.

Se lpDeviceName não for NULL, a função recuperará informações sobre o dispositivo MS-DOS específico especificado por lpDeviceName. A primeira cadeia de caracteres terminada em nulo armazenada no buffer é o mapeamento atual para o dispositivo. As outras cadeias de caracteres terminadas em nulo representam mapeamentos anteriores não excluídos para o dispositivo.

Se lpDeviceName for NULL, a função recuperará uma lista de todos os nomes de dispositivo MS-DOS existentes. Cada cadeia de caracteres terminada em nulo armazenada no buffer é o nome de um dispositivo MS-DOS existente, por exemplo, \Device\HarddiskVolume1 ou \Device\Floppy0.

[in] ucchMax

O número máximo de TCHARs que podem ser armazenados no buffer apontado por lpTargetPath.

Retornar valor

Se a função for bem-sucedida, o valor retornado será o número de TCHARs armazenados no buffer apontado por lpTargetPath.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Se o buffer for muito pequeno, a função falhará e o último código de erro será ERROR_INSUFFICIENT_BUFFER.

Comentários

A função DefineDosDevice permite que um aplicativo crie e modifique as junções usadas para implementar o namespace do dispositivo MS-DOS.

Windows Server 2003 e Windows XP: QueryDosDevice pesquisa primeiro o namespace local do dispositivo MS-DOS para o nome do dispositivo especificado. Se o nome do dispositivo não for encontrado, a função pesquisará o namespace global do dispositivo MS-DOS.

Quando todos os nomes de dispositivo MS-DOS existentes são consultados, a lista de nomes de dispositivo retornados depende se ele está em execução no contexto "LocalSystem". Nesse caso, somente os nomes de dispositivo incluídos no namespace global do dispositivo MS-DOS serão retornados. Caso contrário, será retornada uma concatenação dos nomes de dispositivo presentes nos namespaces de dispositivo MS-DOS Global e local. Se houver um nome de dispositivo nos dois namespaces, QueryDosDevice retornará a entrada no namespace de dispositivo MS-DOS local.

Para obter mais informações sobre os namespaces de dispositivo MS-DOS global e local e alterações na acessibilidade de nomes de dispositivo MS-DOS, consulte Definindo um nome de dispositivo MS DOS.

No Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 3.0 No
TFO (Failover transparente) do SMB 3.0 No
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) No
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) Sim
ReFS (Sistema de Arquivos Resiliente) Sim
 

O SMB não dá suporte a funções de gerenciamento de volume.

Exemplos

Para obter um exemplo, consulte Obtendo um nome de arquivo de um identificador de arquivo ou exibindo caminhos de volume.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho fileapi.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

DefineDosDevice

Funções de gerenciamento de volumes