Какие дескрипторы пользовательского режима Win32 могут быть общими для процессов?

Я пытался лучше понять WinAPI и ядро ​​Windows. Из того, что я вижу до сих пор, HWND дескрипторы (окна) могут быть разделены между процессами.

Но как насчет других дескрипторов, могут ли они быть общими для процессов?

HMODULE, HINSTANCE, ATOM?

А также компоненты окна и чертежа:

HMENU, HDC, HICON, HCURSOR, HBRUSH, так далее.?

И, наконец, если все вышеперечисленное не может быть разделено, есть ли какие-либо дескрипторы пользовательского режима, которые могут быть?

РЕДАКТИРОВАТЬ: Уточнение. От разделение, Я хотел взять числовое значение дескриптора из одного процесса и использовать его в другом процессе.

1

Решение

HMODULE а также HINSTANCE это то же самое на 32-х и 64-х битных Windows. Это базовый адрес модуля, и его нельзя разделить между процессами (кроме адресов ntdll и kernel32, если другой процесс имеет такую ​​же разрядность).

ATOMs входят в процесс и глобальные формы, и глобальная форма может быть разделена процессами на том же самом windowstation.

Дескрипторы рисования GDI не могут быть общими (кроме GetStockObject?).

В Windows NT объекты GDI хранятся в клиентской части модуля GDI подсистемы Win32. Это означает, что любой объект GDI действителен только в контексте приложения, которое его создало.

Дескрипторы USER32 (HWND, HMENU, HICON, HCURSOR) могут быть общими.

DuplicateHandle принимает дескрипторы рабочего стола и windowstation …

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]