Могут ли имена именованных каналов иметь обратную косую черту?

Согласно MSDN ,

[Имя трубы] должно иметь следующая форма:

\\. \ pipe \ pipename

Часть имени pipename может включать любой символ, кроме обратный слеш, включая цифры и специальные символы. Вся труба Строка имени может быть до 256 персонажи длинные. Названия труб не с учетом регистра.

Но есть много примеров, когда я видел имена именованных каналов с обратными слешами в них. Например, стандартное имя канала для SQL Server: \\. \ Pipe \ sql \ query .

Запуск PipeList из SysInternals показывает множество каналов на моей машине, где имя включает в себя обратную косую черту.

Итак, может ли имя канала содержать обратную косую черту или нет?

Я спрашиваю, потому что я создавал службу с несколькими каналами с такими именами:

\\.\pipe\MyApp
\\.\pipe\MyApp\0
\\.\pipe\MyApp\1
\\.\pipe\MyApp\2

После того, как был создан первый канал, создание других каналов завершится с ошибкой Windows 123 (ERROR_INVALID_NAME). Если я пропущу создание первого канала, все остальные, с символом обратной косой черты в имени, будут работать нормально.

Похоже, что каналы имеют иерархическую структуру, как файловая система, и если у вас есть канал с определенным именем, это имя больше нельзя использовать в качестве «папки» или контейнера для других каналов.

Пытаясь выяснить это, я наткнулся на статью MSDN и теперь задаюсь вопросом, следует ли мне использовать обратную косую черту

Любой совет?

6
задан GBegen 2 September 2010 в 20:38
поделиться