gpt4 book ai didi

c++ - 哪些 Win32 用户模式句柄可以在进程之间共享?

转载 作者:行者123 更新时间:2023-11-30 05:08:16 25 4
gpt4 key购买 nike

我一直在努力更好地理解 WinAPI 和底层 Windows 内核。据我目前所见,HWND(窗口)句柄可以在进程之间共享。

但是其他句柄呢,可以在进程间共享吗?

HMODULE, HINSTANCE, ATOM

以及窗口和绘图组件:

HMENUHDCHICONHCURSORHBRUSH等。 ?

最后,如果以上所有内容都无法共享,是否可以共享任何用户模式句柄?

编辑:澄清。通过共享,我的意思是从一个进程中获取句柄的数值并在另一个进程中使用它。

最佳答案

HMODULEHINSTANCE 在 32 位和 64 位 Windows 上是一样的。它是模块的基地址,不能真正跨进程共享(如果其他进程具有相同的位数,则 ntdll 和 kernel32 的地址除外)。

ATOM 以每个进程和全局形式出现,并且全局形式可以由同一进程共享 windowstation .

不能共享 GDI 绘图句柄(也许 GetStockObject 除外?)。

Under Windows NT, GDI objects are stored in the client part of the Win32 subsystem's GDI module. That means that any GDI object is valid only in the context of the application that created it.

USER32 句柄(HWND、HMENU、HICON、HCURSOR)可以共享。

DuplicateHandle 接受桌面和 windowsstation 句柄...

关于c++ - 哪些 Win32 用户模式句柄可以在进程之间共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46945316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com