Windows 8 で AppContainer 整合性レベルを使用して名前付きパイプを作成するにはどうすればよいですか?
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 でパイプが拒否されるのは、OS の設計によるものではなく、WinRT のインターフェイスの欠如によるものです。