如何使用AppContainer完整性级别在Windows 8中创建命名管道?
答案 0 :(得分:4)
正如Pavel Minaev在对some answer的评论中所提到的,WinRT中没有命名管道(对于Metro应用程序,桌面应用程序管道与Windows 7中相同):
例如,命名管道不在那里,也不是内存映射文件。 有插座(包括服务器套接字),但连接时 localhost,您只能连接到同一个应用程序。
您可能对the WinRT API感兴趣,包括sockets。
答案 1 :(得分:2)
谈论WinRT - 你真的无法创建命名管道。
谈论在AppContainer完整性级别下运行的Windows 8桌面应用程序 - 您可以通过常规WinAPI函数创建命名管道。问题是默认情况下只有具有相同AppContainer ID的应用程序才能访问它(换句话说 - 只有您自己的应用程序的实例)。但事实上,如果您具有高或中等完整性级别的流程 - 从此流程您可以创建管道并降低其完整性级别,因此AppContainer中的应用程序可以使用它。
在此处查看示例:http://msdn.microsoft.com/en-us/library/windows/desktop/hh448493(v=vs.85).aspx
更多 - 从具有高完整性级别的桌面应用程序中,您可以使用dll注入将dll注入到WinRT应用程序中,并再次使用WinAPI创建管道。因此,WinRT中的管道被操作系统设计拒绝,但仅限于WinRT中缺少接口。