2010-11-30 5 views
0

이 고려 : Mutex Class (MSDN)서비스에서 세션 뮤텍스를 만드시겠습니까?

(. 그리고 시스 인 터널에서 WinObj를 사용하여)는

어떻게 그것을 창조가 아닌 다른 세션에 대한 뮤텍스를 만들려면 어떻게해야합니까?

즉, 세션 0의 시스템 서비스에서 세션 1에 뮤텍스를 만드시겠습니까?

내가

\ 세션을 사용하여 뮤텍스를 만드는 시도 \ 1 \ BaseNamedObjects \ MyName로

하지만 그건 실패합니다.

WinObj에 표시된 Windows 객체 네임 스페이스의 루트에 직접 쓸 수 있습니까?

+0

세션 개체는 적어도 사용자 모드에서 해당 세션에서 실행중인 프로세스에 의해서만 생성 될 수 있습니다. 커널 드라이버에서이 작업을 수행 할 수 있는지 여부는 알 수 없습니다. 그런데 왜 이걸하고 싶니? 자신의 세션 이외의 세션으로 어지럽히는 것은 좋은 행동이 아닙니다. – Luke

+0

시스템 서비스에서 사용자를 위해 세션에서 돌연변이를 프로그래밍 방식으로 액세스하고 생성하려고합니다. 왜 이것이 가능해서는 안되는지 나는 이해하지 못한다. 사실 CreateProcessAsUser를 사용하여 프로세스를 사용자의 세션에 삽입하여 내 서비스 대신 이러한 작업을 수행하여 동일한 효과를 얻을 수 있습니다. 가능한 경우 서비스의 객체를 직접 조작하는 것을 선호합니다. – Peter350

답변

1

뮤텍스 이름에 "글로벌 \"접두어를 사용하십시오. 터미널 서비스를 실행하는 서버에서 명명 된 시스템 뮤텍스는 두 가지 수준의 가시성을 가질 수 있습니다. 이름이 접두사 "Global \"로 시작하면 모든 터미널 서버 세션에서 뮤텍스를 볼 수 있습니다.

아니면 다른 접근법을 시도해 볼 수 있습니다. 상호 제외 대신 CreateFileMappingOpenFileMapping 메소드의 이름에 "Global \"접두어를 사용하십시오.

관련 문제