2011-10-09 14 views
5

Windows 8でAppContainerの整合性レベルで名前付きパイプを作成する方法は?Windows 8の名前付きパイプの作成

+0

私はあなたが探していると思うhttp://stackoverflow.com/questions/18982221/is-there-a-way-to-create-a-named-pipe-from-an-appcontainer-bho-on- ie11 – EricLaw

答えて

4

パベルMinaevがsome answerへのコメントの1で述べたように、WinRTの(メトロアプリケーションのため、デスクトップアプリケーションのためのパイプは、Windows 7の場合と同じである)には、名前付きパイプがない:

名前付きパイプは、」上がりません例えば、メモリマップされたファイルでもありません。 ソケット(サーバーソケットを含む)がありますが、 localhostに接続すると、同じアプリにしか接続できません。

the WinRT APIsocketsを含む)に興味があるかもしれません。

+1

あなたのニーズに合ったソケットがあれば、Pac​​kage.appxmanifestファイルに "Internet(Client&Server)"機能を追加する必要があります。それをダブルクリックし、[Declarations]タブに移動します。 –

+0

質問は "AppContainerを持つWindows 8"についての答えで、答えは "WinRT"に関するものなので、本当に答えはありません。 AppContainerインテグリティレベルでデスクトップアプリケーションを使用することができ、Win8のデスクトップアプリケーションでは名前付きパイプを使用できます。残念ながら、私は、高度なインテグリティのアプリケーションと "AppContainer"アプリケーションの両方で使用できるパイプの作成方法はわかりません。アクセスが拒否されているので、まだ質問は公開されています。 – Ezh

+1

@Ezh有効で引数のついたdownvoteに感謝します。詳細については、ご自身で回答してください。 –

2

WinRTについては、実際には名前付きパイプを作成できません。

AppContainerの完全性レベルで実行されているWindows 8デスクトップアプリケーションについては、通常のWinAPI関数で名前付きパイプを作成できます。この問題は、デフォルトでは同じAppContainer IDを持つアプリケーション(つまり、自分のアプリケーションのインスタンスのみ)にアクセスすることができます。しかし、実際には、高/中保全レベルのプロセスがある場合、このプロセスからパイプを作成し、その保全レベルを下げることができます。そのため、AppContainerのアプリケーションで使用できます。

は、ここにサンプルを見てみましょう:http://msdn.microsoft.com/en-us/library/windows/desktop/hh448493(v=vs.85).aspx

をさらに - 高整合性レベルを持つデスクトップアプリケーションから、あなたはWinRTのアプリケーションにDLLと再び注入するDLLインジェクションを使用することができます - パイプを作成するWinAPIのを使用しています。したがって、WinRTではOS設計ではなく、WinRTのインターフェイスが不足しているだけでパイプが拒否されます。

関連する問題