Windows NT 裝置驅動程式開發基礎(1) (轉)

worldblog發表於2007-12-12
Windows NT 裝置驅動程式開發基礎(1) (轉)[@more@]一、背景介紹 
 
 1.1  NT操作的組成 
 1.1.1 (User Mode)與核心模式(Kernel Mode) 
 從 80386開始,出於性和穩定性的考慮,該系列的可以執行於ring0 
~ring3從高到低四個不同的級,對資料也提供相應的四個保護級別。執行於較 
低階別的程式碼不能隨意高階別的程式碼和訪問較高階別的資料,而且也只有ring0 
層的程式碼可以直接進行對物理的訪問。由於Windows NT是一個支援多平臺的操作 
系統,為了與其他平臺相容,它只利用了CPU的兩個執行級別。一個被稱為核心模式, 
對應80x86的ring0層,的核心部分,包括裝置都執行在該模式;另 
一個被稱為使用者模式,對應80x86的ring3層,作業系統的使用者介面部分以及所有的用 
戶應用程式都執行在該級別。 
 
 1.1.2 Windows NT作業系統的結構 
 圖1簡要地描述了Windows NT的系統組成。 
 
 圖一 
 從圖中可以看到,在物理硬體(Hardware)與系統核心(Kernel)之間有一個硬體抽象 

層(Hardware Abstraction Layer),它遮蔽了不同平臺硬體的差異,向作業系統的 
上層提供了一套統一的介面。從圖中我們還可以看到,裝置驅動程式(Device ) 
是被I/O管理器(I/O Manager)包圍起來的,即驅動程式與作業系統上層的通訊全部都 
要透過I/O管理器。這給驅動程式的編寫帶來了很大的便利,因為很多諸如接收使用者的請 
求 、與使用者程式資料、對映、掛接中斷、同步等等麻煩的工作都由I/O管理器代 
勞了。 
 
 1.1.3 Windows NT裝置驅動程式的分類 
 
 根據是否直接操作硬體,可以把驅動程式分成兩大類:核心模式的驅動程式和專用驅 
動程式。 
 
 核心模式的驅動程式根據硬體的通訊,直接對硬體進行埠訪問、中斷響應、DM 
A傳輸。它包括:串、並行口,鍵盤,系統,,等驅動程式;專用驅動程式 
包括影片,列印,多,虛擬DOS等驅動程式,他們在實現上與前者有很大區別。我在 
實習期間所做的工作以及本文以下的討論都侷限於核心模式的驅動程式。 
 
-- 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-992236/,如需轉載,請註明出處,否則將追究法律責任。

相關文章