標籤:
來源 http://www.0xaa55.com/forum.php?mod=viewthread&tid=1401&extra=page%3D1
windows裡常用控制代碼操作資源,而對應的對象由作業系統維護,
對象分:使用者物件、GDI對象和核心對象;使用者物件用於windows管理,GDI對象用於繪圖,核心對象用於記憶體、進程和IPC,
Windows核心編程寫道識別核心對象的方法是看有沒有SECURITY_DESCRIPTOR參數
使用者物件的資源套件括:快速鍵、游標、標記、dde轉換、鉤子、表徵圖、菜單、視窗等
GDI對象包括:位元影像、畫刷、畫筆、裝置上下文、圖元、字型、調色盤、地區等
核心對象包括:存取權杖、裝置、控制台、案頭、事件、檔案、檔案對應、堆、作業、油槽、模組、互斥體、管道、訊號量、socket、線程、計時器等
使用者物件,每個對象只能有一個控制代碼,不允許進程間複製和繼承控制代碼,一個session的進程不能引用另一個session進程的控制代碼。每個session最多使用者控制代碼有上限(200,18000),
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\USERProcessHandleQuota
GDI對象,每個對象只能有一個控制代碼,GDI對象的控制代碼對於進程是私人的,只有建立對象的進程可以使用物件控點,控制代碼數最多使用者控制代碼有上限(256,16384),
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota
核心物件控點是進程所有的,也就是說進程要麼開啟已有對象,要麼建立對象以擷取核心物件控點,該控制代碼可以複製和繼承,每個進程控制代碼上限是2^24,然而控制代碼是存在分頁記憶體中的,因此實際控制代碼數與可用記憶體有關。
來自為知筆記(Wiz)
Windows中的對象