Caractere de ponto usado para o nome do computador local

6

Eu estou pensando sobre o caractere de ponto .usado como um atalho para o nome do computador local. Você pode usá-lo ao fazer login no Windows 7, por exemplo, para especificar que a conta de usuário inserida pertence ao computador local e não a um domínio:

.\MyLocalUserAccount

E você pode usá-lo em uma consulta WMI (Instrumentação de Gerenciamento do Windows) para indicar que o destino é o computador local e não um computador remoto. Você também pode usá-lo ao trabalhar com pipes nomeados para fins semelhantes.

No entanto, você não pode usá-lo como o nome da rede UNC do computador, assim:

\\.\MyShare

Esse personagem tem um nome oficial (por exemplo, "LocalHostToken") e quando e onde pode ser usado para esse fim?

rory.ap
fonte
@random - Como essa pergunta está procurando uma recomendação de software? Não é disso que estou procurando.
R24.12
11
Você está solicitando um documento de referência, é por isso que está fora do escopo
aleatório
@ random - Eu atualizei minha pergunta para torná-la mais esperançosamente no tópico.
Roger.ap #

Respostas:

3

Este artigo da Microsoft tem uma boa descrição de \\.\:
Nomeando arquivos, caminhos e espaços para nome - espaços para nome do dispositivo Win32 .

O artigo diz:

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, \\.\COM56porque \\.\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.

harrymc
fonte