Windows中的物件

2022-07-21 11:30:15 字數 1297 閱讀 8565

**  

windows裡常用控制代碼操作資源,而對應的物件由作業系統維護,

物件分:使用者物件、gdi物件和核心物件;

使用者物件用於windows管理,gdi物件用於繪圖,核心物件用於記憶體、程序和ipc,

windows核心程式設計寫道識別核心物件的方法是看有沒有security_descriptor引數

使用者物件的資源包括:快捷鍵、游標、標記、dde轉換、鉤子、圖示、選單、視窗等

gdi物件包括:位圖、畫刷、畫筆、裝置上下文、圖元、字型、調色盤、區域等

核心物件包括:訪問令牌、裝置、控制台、桌面、事件、檔案、檔案對映、堆、作業、油槽、模組、互斥體、管道、訊號量、socket、執行緒、計時器等

使用者物件,每個物件只能有乙個控制代碼,不允許程序間複製和繼承控制代碼,乙個session的程序不能引用另乙個session程序的控制代碼。每個session最多使用者控制代碼有上限(200,18000),

gdi物件,每個物件只能有乙個控制代碼,gdi物件的控制代碼對於程序是私有的,只有建立物件的程序可以使用物件控制代碼,控制代碼數最多使用者控制代碼有上限(256,16384),

hkey_local_machine\software\microsoft\windows nt\currentversion\windows\gdiprocesshandlequota

核心物件控制代碼是程序所有的,也就是說程序要麼開啟已有物件,要麼建立物件以獲取核心物件控制代碼,該控制代碼可以複製和繼承,每個程序控制代碼上限是2^24,然而控制代碼是存在分頁記憶體中的,因此實際控制代碼數與可用記憶體有關。

來自為知筆記(wiz)

關於Windows核心程式設計中的核心物件

對核心物件的理解。何為核心物件 訪問令牌物件,事件物件,檔案物件,檔案對映物件,i o 完成埠物件,作業物件,郵件槽 mailslot 物件,互斥量物件 mutex 管道 pipe 物件,程序物件,信 號量 semaphore 物件,執行緒物件,可等待的計時器 waitable timer 物件,以...

總結windows中的GDI物件以及使用

之前有乙個專案因為那時對c 還不太熟悉,沒有太多經驗,造成了記憶體洩漏 執行緒同步 gdi物件洩漏等新手常見的問題,所以這個程式會不定時地莫名其妙地死掉,後來通過用visual leak detector小心翼翼地解決了記憶體洩漏的問題,接著系統就穩定了很多,而且也重新看了多執行緒那部分,加了多個鎖...

windows核心物件

核心物件只是作業系統核心分配的乙個記憶體塊,並且只能由作業系統核心訪問。該記憶體塊是一種資料結構,它的成員負責維護該物件的各種資訊。windows提供一組函式建立和操作核心物件。呼叫乙個建立核心物件的函式,函式會返回乙個控制代碼,該控制代碼標識了這個核心物件,這個控制代碼可由當前程序中的所有執行緒呼...