저는 WinAPI와 기본 Windows 커널을 더 잘 이해하려고 노력해 왔습니다. 지금까지 볼 수 있듯이 HWND
(창) 핸들은 프로세스간에 공유 될 수 있습니다.프로세스간에 Win32 사용자 모드 핸들을 공유 할 수 있습니까?
하지만 다른 핸들은 프로세스간에 공유 할 수 있습니까?
HMODULE
, HINSTANCE
, ATOM
?
뿐만 아니라 윈도우 및 도면 구성 요소 :
HMENU
, HDC
, HICON
, HCURSOR
, HBRUSH
등?
위의 내용을 모두 공유 할 수 없다면 사용자 모드 핸들이있을 수 있습니까?
EDIT : 명확화. 을 공유하는 것은 한 프로세스의 핸들 값을 다른 프로세스에서 사용하는 것을 의미합니다.
윈도우 95/98/ME는 다를 수 있습니다, 난 더 이상 세부 사항을 기억하지 않습니다. 커널의 일부는 16 비트이므로 보안이 없으므로 게임을 할 수 있습니다. kernel32, user32, gdi32 등의 HMODLUE는 특별한 높은 주소에로드되기 때문에 모두 공유 할 수 있습니다. 이러한 시스템에서는 기본 dll이 아니기 때문에 ntdll에는 적용되지 않을 수 있습니다. – Anders
정보를 제공해 주셔서 감사합니다. 두 가지 빠른 후속 조치. 1)'ATOM' 핸들의'global' 형태를 사용하는 API는 무엇이겠습니까? 그리고 2) 공유함으로써, 나는 하나의 프로세스에서 핸들의 숫자 값을 가져 와서 다른 프로세스에서 그것을 사용하는 것을 의미했다. 단지 HWND와 같다. 그렇다면 'HMENU','HICON','HCURSOR'를 정말로 공유 할 수 있을까요? 추신. 죄송합니다, upvote 수 없습니다. 주스가 충분하지 않습니다. – MikeF
@MikeF, [USER 개체 핸들] (https://msdn.microsoft.com/en-us/library/ms725486)은 세션 내에서 공개되며 연결된 데스크톱을 열기 위해 읽기 - 쓰기 권한이있는 경우 사용할 수 있습니다. 일반적으로 Global [atom table] (https://msdn.microsoft.com/en-us/library/ms649053)은 세션의 유일한 대화 형 WindowStation 인 "WinSta0"과 같은 WindowStation에 있습니다. [ 'JOBOBJECT_BASIC_UI_RESTRICTIONS'] (https://msdn.microsoft.com/en-us/library/ms684152)가있는 프로세스는 동일한 작업의 프로세스와 USER 개체에만 제한 될 수 있습니다. – eryksun