2013-03-06 66 views
3

正如我从windows内部理解的那样,执行对象的句柄不是由您从CreateWindow()LoadCursor()等这样的函数获得的句柄来管理。GUI处理在哪里管理?

什么dll/sys负责从user32.dll函数返回的这些?这种手柄有像WinObj这样的程序吗?

即使对于某些关键字,我也很高兴谷歌,没有任何运气在这个问题上标记的关键字。

+3

的'TEB'包含的一些信息为用户模式:http://undocumented.ntinternals.net/UserMode/Undocumented%20Functions/NT%20Objects/Thread/TEB.html – 0xC0000022L 2013-03-06 13:25:32

+0

+1我忘了这个。 :) – Xearinox 2013-03-06 13:38:49

回答

3

win32k.sys负责处理USER和GDI请求。

win32k驱动程序是导出超过600个函数的图形堆栈 中的关键组件。它将系统服务 描述符表(SSDT)与称为 _W32pServiceTable的另一个表进行了扩展。该驱动程序不像主要内核模块(ntoskrnl.exe)那样大,但它与用户模式的交互仅仅是 同样重要。根据Windows的版本,win32k的服务表包含少于300个 函数。 win32k驱动程序 通常使用用户模式回调 系统将控制转移到用户模式。用户模式模块与内核模式驱动程序之间的接口已建立,以便于窗口创建和管理。

详细信息:http://mista.nu/research/mandt-win32k-paper.pdf

+1

由于NT4,它应该被添加。在此之前,MS已经尝试过在用户模式下进行此操作;)+1 – 0xC0000022L 2013-03-06 13:23:14

+0

是的,在NT4.0 0中,大部分USER组件已从CSRSS(用户模式)移至win32k.sys(内核模式) – Xearinox 2013-03-06 13:27:15

+0

我有这样的引用在我的文档中,我添加了另一个类似答案。 :) – Xearinox 2013-03-06 13:36:07