亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標(biāo)題:
從驅(qū)動(dòng)編寫角度看Windows 系統(tǒng)的層次架構(gòu)
[打印本頁]
作者:
jialinx
時(shí)間:
2015-9-13 16:50
標(biāo)題:
從驅(qū)動(dòng)編寫角度看Windows 系統(tǒng)的層次架構(gòu)
Windows 的基本驅(qū)動(dòng)架構(gòu)
這里是一個(gè)基本的Windows 系統(tǒng)的架構(gòu),和一般對(duì)操作系統(tǒng)的架構(gòu)的介紹稍微有點(diǎn)不同的是,對(duì)于系統(tǒng)底層做了分解。在硬件抽象層(HAL)上的系統(tǒng)核心處,標(biāo)示了幾個(gè)核心構(gòu)件,如文件系統(tǒng)驅(qū)動(dòng),可輸出的驅(qū)動(dòng)例程及核心態(tài)的驅(qū)動(dòng)(KMD)。而用戶態(tài)的驅(qū)動(dòng)程序則劃分在應(yīng)用程序?qū)用妗2⒉皇撬械尿?qū)動(dòng)程序都屬于系統(tǒng)核心層,這樣就可以降低核心崩潰的風(fēng)險(xiǎn)。
用戶態(tài)驅(qū)動(dòng)和普通的應(yīng)用程序一樣,以普通權(quán)限運(yùn)行,只能通過Windows API進(jìn)入與底層硬件打交道。而核心態(tài)的驅(qū)動(dòng)則是操作系統(tǒng)構(gòu)成的一部分,系統(tǒng)對(duì)其數(shù)據(jù)不做完整性檢查,則可能會(huì)導(dǎo)致系統(tǒng)崩潰。并且處于核心態(tài)的驅(qū)動(dòng)程序難于調(diào)試。
以Xp系統(tǒng)中的打印機(jī)驅(qū)動(dòng)程序?yàn)槔譃橛脩艚缑娌糠趾驮O(shè)備渲染部分。用戶界面部分如選擇紙張大小,設(shè)置是否雙面打印等,都是調(diào)用一般的Windows API,和普通應(yīng)用程序一樣工作。而對(duì)于實(shí)際打印機(jī)控制的設(shè)備渲染部分,則處于核心態(tài)工作。用戶界面部分通過系統(tǒng)調(diào)用的形式對(duì)其進(jìn)行控制(DeviceIoControl?),從而完成打印工作。
注:對(duì)于Vista以后的系統(tǒng),渲染部分也在用戶態(tài)工作。
驅(qū)動(dòng)的層次結(jié)構(gòu):
應(yīng)用程序處于驅(qū)動(dòng)棧的頂層,處理用戶和其他應(yīng)用程序的請(qǐng)求,并且調(diào)用Win32 API或者用戶態(tài)驅(qū)動(dòng)客戶端所暴露的例程。
用戶態(tài)客戶端驅(qū)動(dòng)處理來自應(yīng)用程序或Win32API的請(qǐng)求。對(duì)于需要核心態(tài)才能完成的服務(wù),則調(diào)用Win32API,通過核心態(tài)驅(qū)動(dòng)或支持例程完成該請(qǐng)求。這個(gè)驅(qū)動(dòng)通常通過DLL方式實(shí)現(xiàn)。打印機(jī)驅(qū)動(dòng)通常由很多操作是需要用戶態(tài)工作,所以會(huì)工作于用戶態(tài)。而存儲(chǔ)設(shè)備,網(wǎng)絡(luò)和輸入設(shè)備則不需要這樣。
核心態(tài)的客戶端驅(qū)動(dòng)完成的工作與用戶態(tài)類似,只是完成無法在用戶態(tài)完成的操作。
設(shè)備類和迷你類驅(qū)動(dòng)對(duì)提供設(shè)備支持的批量傳輸。類驅(qū)動(dòng)提供特定類的設(shè)備中系統(tǒng)所需的并且與硬件獨(dú)立的支持。一般也是有MS提供。迷你驅(qū)動(dòng)提供特定類中特定設(shè)備的操作。如電池類驅(qū)動(dòng)提供了所有電池的通用操作,而一個(gè)UPS設(shè)備的迷你類驅(qū)動(dòng)則處理這個(gè)設(shè)備的特殊操作。一般由硬件供應(yīng)商提供。
對(duì)應(yīng)于端口驅(qū)動(dòng) (對(duì)于一些設(shè)備,是宿主控制器或宿主適配器驅(qū)動(dòng)) 支持下層端口,集線器,或所連接的物理設(shè)備的I/O操作。是否具有此類驅(qū)動(dòng),取決于設(shè)備類型以及它連接的總線類型。 存儲(chǔ)設(shè)備的全部驅(qū)動(dòng)棧都有一個(gè)端口驅(qū)動(dòng)。例如,SCSI端口驅(qū)動(dòng)提供SCSI總線上的I/O。
對(duì)于 USB 設(shè)備,集線器和宿主控制器的驅(qū)動(dòng)共同完成端口驅(qū)動(dòng)工作。它們處理USB設(shè)備以及總線自己的I/O操作。
相應(yīng)的微端口驅(qū)動(dòng)處理與設(shè)備相關(guān)的操作。對(duì)于大部分端口,端口驅(qū)動(dòng)由操作系統(tǒng)提供,而微端口驅(qū)動(dòng)則由設(shè)備供應(yīng)商提供。
最底部是硬件總線驅(qū)動(dòng)。是操作系統(tǒng)的基本部分,由微軟提供,一般不需修改。
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1