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

2021-06-01 19:12:05 字數 1120 閱讀 8785

對核心物件的理解。

何為核心物件:

訪問令牌物件,事件物件,檔案物件,檔案對映物件,i/o 完成埠物件,作業物件,郵件槽(mailslot)物件,互斥量物件(mutex),管道(pipe)物件,程序物件,信        號量(semaphore)物件,執行緒物件,可等待的計時器(waitable timer)物件,以及執行緒池工廠(thread pool worker factory)物件等。

我們可以利用 winobj工具可以檢視核心對像型別的類表。

核心物件用於管理程序執行緒和檔案。

每個核心物件都只是乙個記憶體塊,它由作業系統核心分配,並只能由作業系統核心訪問。這個記憶體塊是乙個資料結構,其成員維護者與物件相關的資訊。

對於程序物件有乙個程序id,乙個基本的優先順序和乙個退出**;而檔案物件有乙個位元組偏移量,乙個共享模式和乙個開啟模式。

因為核心物件的資料結構只能有作業系統核心來訪問,所以應用程式不能在記憶體中定位這些資料結構並直接更改內容。

為了讓作業系統知道我們要對哪個核心物件進行操作,我們需要將這個控制代碼傳給各種windows函式。

介紹3中機制,來實現多個程序成功共享同乙個核心物件。

1.使用計數.: 作業系統核心知道當前有多少個程序正在使用乙個特定的核心物件。

2.核心物件的安全性

核心物件可以用乙個安全描述符(security descriptor, sd)來保護。 安全描述符描述了誰擁有物件; 哪些組和使用者被允許訪問或使用此物件。

typedef struct _security_attributes security_attributes, *psecurity_attributes, *lpsecurity_attributes;

如果想對我們建立的核心物件加以訪問限制,就必須建立乙個安全描述符。

初始化它

security_attributes sa;

sa.nlength = sizeof sa;

sa.lpsecuritydescriptor = &sd_wideopen;

sa.binherithable = false;

handle m_hmutexhandle = ::createmutex(& sa, false, "7k7k_lh_flashtips_2010-10-26");

Windows核心程式設計

內容簡介 這是一本經典的windows核心程式設計指南,從第1版到第5版,引領著數十萬程式設計師走入windows開發陣營,培養了大批精英。作為windows開發人員的必備參考,本書是為打算理解windows的c和c 程式設計師精心設計的。第5版全面覆蓋windows xp,windows vist...

WINDOWS核心程式設計 核心物件

今天想把看的第三章的心得寫下來。這章主要介紹了核心物件。在windows中,核心物件是由作業系統來管理,儘管使用者能夠建立它,但是在建立之後,使用者對該核心物件的操作都是委託給作業系統。通常使用者建立和使用的物件分為 使用者物件 如 hicon createicon prama gdi物件函式以及核...

Windows核心程式設計 核心物件

每個核心物件只是核心分配的乙個記憶體塊,只能由核心訪問.該記憶體塊是一種資料結構,它的成員負責維護物件的各種資訊,由得物件型別相同,但大多數不同,比如程序物件有個程序id,乙個基本優先順序,乙個退出 檔案物件則有乙個位元組位移,乙個共享模式,乙個開啟模式 如果核心控制代碼傳遞給另外乙個程序,那麼這另...