创建命名管道的符号链接

创建命名管道的符号链接

假设某个应用程序公开了一个名为“Pipe1”的命名管道。如果我想将命名管道表示为可用于写入或读取的文件路径,\\.\pipe\Pipe1则该路径\\?\pipe\Pipe1有效并指向命名管道。

现在,为了更轻松地验证路径(某些应用程序可能不喜欢\\.\),我想也许可以使用符号链接指向命名管道设备。我尝试通过、和创建链接mklink link \\.\pipe\Pipe1mklink link \\?\pipe\Pipe1mklink link \\?\GlobalRoot\Device\NamedPipe\Pipe1尝试打开链接时,所有这些都失败了,并出现以下错误:

重解析点缓冲区中的数据无效

我尝试做的事情有意义吗?符号链接可以指向任何路径,而不仅仅是文件系统吗?有没有更好的方法来完成我想做的事情?

奇怪的是,我记得我以前曾尝试解决这个问题,符号链接或多或少就是这样工作的。此外,符号链接是唯一可用的类型,创建硬链接失败(因为管道不在 NTFS 分区上),目录链接或连接不能用于 i/o。

相关内容