標(biāo)題: 從驅(qū)動編寫角度看Windows 系統(tǒng)的層次架構(gòu) [打印本頁]

作者: jialinx    時間: 2015-9-13 16:50
標(biāo)題: 從驅(qū)動編寫角度看Windows 系統(tǒng)的層次架構(gòu)

Windows 的基本驅(qū)動架構(gòu)
這里是一個基本的Windows 系統(tǒng)的架構(gòu),和一般對操作系統(tǒng)的架構(gòu)的介紹稍微有點不同的是,對于系統(tǒng)底層做了分解。在硬件抽象層(HAL)上的系統(tǒng)核心處,標(biāo)示了幾個核心構(gòu)件,如文件系統(tǒng)驅(qū)動,可輸出的驅(qū)動例程及核心態(tài)的驅(qū)動(KMD)。而用戶態(tài)的驅(qū)動程序則劃分在應(yīng)用程序?qū)用。并不是所有的?qū)動程序都屬于系統(tǒng)核心層,這樣就可以降低核心崩潰的風(fēng)險。

用戶態(tài)驅(qū)動和普通的應(yīng)用程序一樣,以普通權(quán)限運行,只能通過Windows API進(jìn)入與底層硬件打交道。而核心態(tài)的驅(qū)動則是操作系統(tǒng)構(gòu)成的一部分,系統(tǒng)對其數(shù)據(jù)不做完整性檢查,則可能會導(dǎo)致系統(tǒng)崩潰。并且處于核心態(tài)的驅(qū)動程序難于調(diào)試。
以Xp系統(tǒng)中的打印機驅(qū)動程序為例,分為用戶界面部分和設(shè)備渲染部分。用戶界面部分如選擇紙張大小,設(shè)置是否雙面打印等,都是調(diào)用一般的Windows API,和普通應(yīng)用程序一樣工作。而對于實際打印機控制的設(shè)備渲染部分,則處于核心態(tài)工作。用戶界面部分通過系統(tǒng)調(diào)用的形式對其進(jìn)行控制(DeviceIoControl?),從而完成打印工作。
注:對于Vista以后的系統(tǒng),渲染部分也在用戶態(tài)工作。

驅(qū)動的層次結(jié)構(gòu):









歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1