一:命名管道格式: "server\pipe\PipeName"
Server: 服务器所在计算机名称,可以是DNS名称,也可以是NetBIOS名称,或者IP
PipeName:管道唯一名,允许包含多个路径 \\Myserver\pipe\Myappserver\ConnetcPipe
二:Windows有一个专门解析UNC名称的网络组件,MUP(Multiple UNC Provider)
负责把UNC(Windows统一命名规范,Universal Naming Convention)名称传递给UNC提供者或网络重定向器
MUP 在系统引导时加载到系统中,创建名字为“\Device\Mup” 设备对象,建立符号连接名 "\Global\UNC",指向 对象 “\Device\Mup”.
CreatenamedPipe 创建命名管道时,指定一个 "\\.\Pipe\<PipeName>" 的本地名称 . 代表本地系统
内核NtCrateNamedPipeFile 接收到名称是 \??\PIPE\<PipeName>",对象管理器将此名称转换为
"\Global??\PIPE\<PipeName>" 由于、Global??\PIPE 是一个符号链接,指向设备对象 \Device\NamedPipe,对象管理器找到该设备对象,剩下的进入命名管道驱动程序中。
建立链接以后,服务器和客户进程都可以调用SetNamedPipeHandleState设置管道读写模式和等待模式。