2013-03-06 102 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