2

Допустим, какое-то приложение предоставляет именованный канал с именем "Pipe1". Если я хочу выразить именованный канал как путь к файлу, который можно использовать для записи или чтения, путь \\.\pipe\Pipe1 или \\?\pipe\Pipe1 действителен и указывает на именованный канал.

Теперь для облегчения проверки пути (некоторые приложения могут не понравиться \\.\), Я подумал, что, возможно, можно использовать символическую ссылку, чтобы указать на устройство именованного канала. Я пытался создать ссылку через ссылку mklink link \\.\pipe\Pipe1 , mklink link \\?\pipe\Pipe1 , а также mklink link \\?\GlobalRoot\Device\NamedPipe\Pipe1 , но все они терпят неудачу при попытке открыть ссылку со следующей ошибкой:

Данные, присутствующие в буфере точек повторной обработки, недействительны

Имеет ли смысл то, что я пытаюсь сделать? Может ли символическая ссылка указывать на любой путь, а не только на файловую систему? Есть ли лучший способ выполнить то, что я пытаюсь сделать?

Странно, я вроде помню, что пытался решить эту проблему раньше, и символическая ссылка работала таким образом, более или менее. Кроме того, символическая ссылка является единственным используемым типом, создание жесткой ссылки не удается (поскольку канал не находится на разделе NTFS), и ссылка на каталог или соединение не может использоваться для ввода-вывода.

0