用户对象就像弱指针一样吗?

时间:2015-03-10 04:53:58

标签: windows handle taskmanager user-object

我正在详细研究任务管理器,在那里我找到了名为 USER Objects 的列。现在当我试图寻找它的确切含义时,我得到了以下描述,

Task Manager Columns Description

  

进程当前使用的USER对象数。一个用户   object是Window Manager中的一个对象,包括windows,   菜单,游标,图标,钩子,加速器,显示器,键盘   布局和其他内部对象。

这是否意味着,USER对象就像是指向Cursor,Icons,Monitor等对象的弱指针,它们将被所有正在运行的应用程序共享?

1 个答案:

答案 0 :(得分:1)

是的,你有点正确。

对象只能通过其句柄访问。应用程序无法直接访问对象数据或对象所代表的系统资源。相反,应用程序必须获取一个对象 handle ,它可以用来检查或修改系统资源。

在Windows下明确标记为对象的实体是GDI和USER对象:

  • GDI 对象是画笔,钢笔,位图,字体,调色板和区域;

  • USER对象是窗口类,原子,菜单和窗口。

每个句柄在内部维护的表中都有一个条目。这些条目包含资源的地址和标识资源类型的方法。

这些对象的句柄实际上分别指向GDI和USER模块的默认数据段。句柄和对象之间的关系隐含在句柄中,当转换为指向USER和GDI的默认数据段的指针时,指向描述对象的数据结构内部。