Windows 8 создание именованного канала - PullRequest
5 голосов
/ 10 октября 2011

Как я могу создать именованный канал в Windows 8 с уровнем целостности AppContainer?

Ответы [ 2 ]

4 голосов
/ 10 октября 2011

Как отметил Павел Минаев в одном из комментариев к некоторый ответ , в WinRT нет именованных каналов (для приложений Metro, для настольных приложений каналы такие же, как в Windows 7):

Например, нет именованных каналов и файлов, отображаемых в память. Есть сокеты (в том числе серверные), но при подключении к localhost, вы можете подключиться только к одному и тому же приложению.

Вас может заинтересовать WinRT API , включая сокеты .

2 голосов
/ 12 августа 2014

Говоря о WinRT - вы действительно не можете создать именованный канал.

Говоря о настольном приложении Windows 8, работающем на уровне целостности AppContainer - вы можете создать именованный канал с помощью обычных функций WinAPI. Проблема в том, что по умолчанию только приложения с одинаковым идентификатором AppContainer могут получить к нему доступ (другими словами - только экземпляры вашего собственного приложения). Но на самом деле, если у вас есть процесс с высоким или средним уровнем целостности - из этого процесса вы можете создать канал и уменьшить его уровень целостности, чтобы приложения из AppContainer могли его использовать.

Взгляните на образец здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/hh448493(v=vs.85).aspx

Еще больше - из настольного приложения с высоким уровнем целостности вы можете использовать dll-инъекцию, чтобы внедрить вашу dll в WinRT-приложение, и снова - использовать WinAPI для создания каналов. Таким образом, каналы запрещены в WinRT не конструкцией ОС, а только отсутствием интерфейсов в WinRT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...