O \\.\
prefixo acessará o espaço para nome do dispositivo Win32 em vez do espaço para nome do arquivo Win32 . É assim que o acesso a discos e volumes físicos é realizado diretamente, sem passar pelo sistema de arquivos, se a API suportar esse tipo de acesso. Você pode acessar muitos dispositivos que não sejam discos dessa maneira (usando as funções CreateFile e DefineDosDevice, por exemplo).
Por exemplo, se você deseja abrir a porta de comunicação serial 1 do sistema, pode usar "COM1" na chamada para a função CreateFile. Isso funciona porque COM1 – COM9 faz parte dos nomes reservados no espaço para nome do NT, embora o uso do \\.\
prefixo também funcione com esses nomes de dispositivo. Por comparação, se você possui uma placa de expansão serial de 100 portas instalada e deseja abrir o COM56, não é possível abri-lo usando "COM56" porque não há espaço para nome predefinido do NT para o COM56. Você precisará abri-lo usando, \\.\COM56
porque \\.\
vai diretamente para o namespace do dispositivo sem tentar localizar um alias predefinido.
Outro exemplo de uso do espaço para nome do dispositivo Win32 está usando a função CreateFile com \\.\PhysicalDiskX
(onde X é um valor inteiro válido) ou \\.\CdRomX
. Isso permite que você acesse esses dispositivos diretamente, ignorando o sistema de arquivos. Isso funciona porque esses nomes de dispositivos são criados pelo sistema à medida que esses dispositivos são enumerados e alguns drivers também criarão outros aliases no sistema. Por exemplo, o driver de dispositivo que implementa o nome "C: \" possui seu próprio espaço para nome, que também é o sistema de arquivos.
As APIs que passam pela função CreateFile geralmente funcionam com o
\\.\
prefixo, porque CreateFile é a função usada para abrir arquivos e dispositivos, dependendo dos parâmetros usados.
Se você estiver trabalhando com funções da API do Windows, use o
\\.\
prefixo para acessar apenas dispositivos e não arquivos .
A maioria das APIs não suporta \\.\
; somente aqueles projetados para trabalhar com o espaço para nome do dispositivo o reconhecerão. Sempre verifique o tópico de referência para cada API para ter certeza.
Essa convenção de endereçamento de dispositivo deve sempre funcionar no prompt de comando (cmd), ao lado de outros aplicativos.