Nomeando um volume

Um rótulo é um nome amigável atribuído a um volume, geralmente por um usuário final, para facilitar o reconhecimento. Um volume pode ter um rótulo, uma letra da unidade, ambos ou nenhum deles. Para definir o rótulo de um volume, use a função SetVolumeLabel .

Vários fatores podem dificultar a identificação de volumes específicos usando apenas letras e rótulos de unidade. Uma delas é que um volume não é necessário para ter uma letra da unidade ou um rótulo. Outra é que dois volumes diferentes podem ter o mesmo rótulo, o que os torna indistinguíveis, exceto por letra de unidade. Um terceiro fator é que as atribuições de letra da unidade podem ser alteradas à medida que os volumes são adicionados e removidos do computador.

Para resolver esse problema, o sistema operacional usa caminhos GUID de volume para identificar volumes. Estas são cadeias de caracteres deste formulário:

"\\?\Volume{GUID}\"

em que GUID é um GUID (identificador global exclusivo) que identifica o volume.

Às vezes, um caminho guid de volume é chamado de nome de volume exclusivo, pois um caminho guid de volume pode se referir apenas a um volume. No entanto, esse termo é enganoso, pois um volume pode ter mais de um caminho GUID de volume.

O prefixo "\\?\" desabilita a análise de caminho e não é considerado como parte do caminho. Para obter mais informações sobre o prefixo "\\?\", consulte Nomeando um arquivo ou diretório.

Você deve especificar caminhos completos ao usar caminhos GUID de volume com o prefixo "\\?\".

Uma pasta montada é uma associação entre uma pasta em um volume e outro volume, para que o caminho da pasta possa ser usado para acessar o volume. Por exemplo, se você usar a função SetVolumeMountPoint para criar uma pasta montada que associe o volume "D:\" com a pasta "C:\MountD\", você pode usar qualquer caminho ("D:\" ou "C:\MountD\") para acessar o volume "D:\".

Um ponto de montagem de volume é qualquer caminho de modo de usuário que pode ser usado para acessar um volume. Há três tipos de pontos de montagem de volume:

  • Uma letra da unidade, por exemplo, "C:\".
  • Um caminho guid de volume, por exemplo, "\\?\Volume{26a21bda-a627-11d7-9931-806e6f6e6963}\".
  • Uma pasta montada, por exemplo, "C:\MountD\".

Todas as funções de volume e pasta montada que tomam um caminho GUID de volume como um parâmetro de entrada exigem a barra invertida à direita. Todas as funções de volume e pasta montada que retornam um caminho GUID de volume fornecem a barra invertida à direita, mas esse não é o caso da função CreateFile . Você pode abrir um volume chamando CreateFile e omitir a barra invertida à direita do nome do volume especificado. CreateFile processa um caminho GUID de volume com uma barra invertida acrescentada como o diretório raiz do volume.

O sistema operacional atribui um caminho GUID de volume a um volume quando o volume é instalado pela primeira vez e quando o volume é formatado. As funções volume e pasta montada usam caminhos GUID de volume para acessar volumes. Para obter o caminho GUID do volume para um volume, use a função GetVolumeNameForVolumeMountPoint .

Os comprimentos do caminho podem ser uma preocupação quando uma pasta montada é criada que associa um volume que tem uma árvore de diretório profunda a um diretório em outro volume. Isso ocorre porque o caminho do volume é concatenado para o caminho do diretório. A constante definida globalmente MAX_PATH define o número máximo de caracteres que um caminho pode ter. (Para obter mais informações sobre MAX_PATH, consulte Nomeando um arquivo ou diretório.) Você pode evitar essa restrição fazendo um dos seguintes procedimentos:

  • Consulte volumes por seus caminhos guid de volume.
  • Use as versões Unicode (W) de funções de arquivo, que dão suporte ao prefixo \\?\.