我注意到WCF的命名管道地址
net.pipe://localhost/mynamedpipe
和 Windows API
\\.\pipe\mynamedpipe
不要碰撞。这是为什么?我怎样才能让它们指向同一个管道?
没有记录的方法可以做到这一点。经过一些测试,我得出以下结论:
如果您有 WCF 服务器和 Win32 C++ 客户端,最后一个客户端会将第一个地址视为 UUID,格式如下:
12345678-1234-1234-1234-123456789abc
这个 UUID 看起来是随机的,因为每次服务器启动时它都会针对相同的 WCF 地址进行更改。
我不知道具有 GUID 格式地址的 Win32 C++ 命名管道服务器是否对 WCF 客户端可见,但我确信如果是这样,服务器将必须实现 WCF 使用的记录不完善的协议。
提供此类协议的文档作为对我之前关于这个主题的问题。 https://stackoverflow.com/questions/3778642/is-it-possible-to-use-wcf-to-communicate-with-windows-kernel-mode-software
EDIT进一步的研究表明,管道地址存储在 FileMapping 中。该条目地址又是 NetNamedPipe 地址规范化版本的 Base64 编码哈希值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)