5

如何在具有 AppContainer 完整性级别的 Windows 8 中创建命名管道?

4

2 回答 2

4

正如 Pavel Minaev 在对某些答案的评论之一中提到的那样,WinRT 中没有命名管道(对于 Metro 应用程序,对于桌面应用程序,管道与 Windows 7 中的相同):

例如,命名管道不存在,内存映射文件也不存在。有socket(包括服务器socket),但是连接localhost时,只能连接同一个app。

您可能对WinRT API感兴趣,包括套接字

于 2011-10-10T06:42:45.443 回答
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 中缺少接口。

于 2014-08-12T12:49:16.707 回答