Windows 8命名管道创建

时间:2011-10-09 21:26:37

标签: named-pipes windows-8 integrity

如何使用AppContainer完整性级别在Windows 8中创建命名管道?

2 个答案:

答案 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中缺少接口。