В этой статье Microsoft есть хорошее описание \\.\
:
Именование файлов, путей и пространств имен - пространства имен устройств Win32.
В статье говорится:
Префикс \\.\
Будет обращаться к пространству имен устройства Win32 вместо пространства имен файла Win32. Именно так доступ к физическим дискам и томам осуществляется напрямую, без прохождения через файловую систему, если API поддерживает этот тип доступа. Таким способом можно получить доступ ко многим устройствам, кроме дисков (например, с помощью функций CreateFile и DefineDosDevice).
Например, если вы хотите открыть последовательный порт связи системы 1, вы можете использовать "COM1" при вызове функции CreateFile.
Это работает, потому что COM1-COM9 являются частью зарезервированных имен в пространстве имен NT, хотя использование префикса \\.\
Также будет работать с этими именами устройств. Для сравнения, если у вас установлена плата последовательного расширения на 100 портов и вы хотите открыть COM56, вы не можете открыть ее с помощью "COM56", потому что нет предопределенного пространства имен NT для COM56. Вам нужно будет открыть его с помощью \\.\COM56
потому что \\.\
Переходит непосредственно в пространство имен устройства, не пытаясь найти предопределенный псевдоним.
Еще один пример использования пространства имен устройства Win32 - использование функции CreateFile с \\.\PhysicalDiskX
(где X - допустимое целочисленное значение) или \\.\CdRomX
. Это позволяет получить доступ к этим устройствам напрямую, минуя файловую систему. Это работает, потому что эти имена устройств создаются системой при перечислении этих устройств, и некоторые драйверы также создают другие псевдонимы в системе. Например, драйвер устройства, который реализует имя «C:\», имеет свое собственное пространство имен, которое также является файловой системой.
API, которые проходят через функцию CreateFile, обычно работают с префиксом \\.\
Потому что CreateFile - это функция, используемая для открытия файлов и устройств, в зависимости от используемых вами параметров.
Если вы работаете с функциями Windows API, вы должны использовать префикс \\.\
Для доступа только к устройствам, а не к файлам.
Большинство API не поддерживают \\.\
; распознавать его могут только те, которые предназначены для работы с пространством имен устройства. Всегда проверяйте справочную тему для каждого API, чтобы быть уверенным.
Это соглашение об адресации устройств всегда должно работать в командной строке (cmd), помимо других приложений.