2011-10-09 2 views
5

AppContainer 무결성 수준으로 Windows 8에서 명명 된 파이프를 어떻게 만듭니 까?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에 주석 중 하나에서 언급 한 바와 같이, WinRT에는 명명 된 파이프가없는 (메트로 애플리케이션, 데스크톱 응용 프로그램에 대한 파이프는 윈도우 7과 동일) :

명명 된 파이프가 때로 믿을 수 ' 예를 들어, 메모리 매핑 된 파일도 없습니다. 소켓 (서버 소켓 포함)이 있지만 로컬 호스트 에 연결할 때 동일한 앱에만 연결할 수 있습니다.

sockets을 포함하여 the WinRT API에 관심이 있으실 것입니다.

+1

소켓이 사용자의 필요에 맞으면 Package.appxmanifest 파일에 "인터넷 (클라이언트 및 서버)"기능을 추가해야합니다. 두 번 클릭하고 선언 탭으로 이동하십시오. –

+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

은 더욱 - 파이프를 만들 수 WinAPI를 사용 - 높은 무결성 수준으로 데스크톱 응용 프로그램에서 당신은 당신이 WinRT 응용 프로그램에 DLL을 다시 주입하는 DLL을 주입 할 수 있습니다. 따라서 WinRT에서는 OS 디자인이 아니라 WinRT의 인터페이스 부족으로 인해 파이프가 거부됩니다.