青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

任我行

一天一個(gè)腳印......
每日一句:
posts - 54, comments - 218, trackbacks - 1, articles - 0
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

很久沒(méi)有網(wǎng)了,出了一段時(shí)間的差,近來(lái),莫名的就有點(diǎn)郁悶!前不久在大富翁上發(fā)了一份帖子是關(guān)于delphi程序員的發(fā)展,大家的反應(yīng)并不都是很好。于是開(kāi)始覺(jué)得可以考慮換個(gè)方向。以前我是做MIS開(kāi)發(fā)的。換哪個(gè)方向呢?人越多的方向,好像越是沒(méi)有前途。想想當(dāng)初上大學(xué),那可是越多人考的學(xué)校,學(xué)費(fèi)越貴啊!可現(xiàn)在的職業(yè)呢?越多人干的事,越是沒(méi)有前途了。考慮來(lái)考慮去,決定學(xué)習(xí)一下驅(qū)動(dòng)程序的開(kāi)發(fā)吧!于是從網(wǎng)上查找了一些資料,看的懂的覺(jué)得蠻不錯(cuò)適合我這種小學(xué)生的就貼了出來(lái),算是學(xué)習(xí)筆記吧!

用戶模式與內(nèi)核模式

從Intel80386開(kāi)始,出于安全性和穩(wěn)定性的考慮,該系列的CPU可以運(yùn)行于ring0~ring3從高到低四個(gè)不同的權(quán)限級(jí),對(duì)數(shù)據(jù)也提供相應(yīng)的四個(gè)保護(hù)級(jí)別。運(yùn)行于較低級(jí)別的代碼不能隨意調(diào)用高級(jí)別的代碼和訪問(wèn)較高級(jí)別的數(shù)據(jù),而且也只有運(yùn)行在ring0層的代碼可以直接對(duì)物理硬件進(jìn)行訪問(wèn)。由于WindowsNT是一個(gè)支持多平臺(tái)的操作系統(tǒng),為了與其他平臺(tái)兼容,它只利用了CPU的兩個(gè)運(yùn)行級(jí)別。一個(gè)被稱(chēng)為內(nèi)核模式,對(duì)應(yīng)80x86的ring0層,是操作系統(tǒng)的核心部分,設(shè)備驅(qū)動(dòng)程序就是運(yùn)行在該模式下;另一個(gè)被稱(chēng)為用戶模式,對(duì)應(yīng)80x86的ring3層,操作系統(tǒng)的用戶接口部分(就是我們通常所說(shuō)的win32 API)以及所有的用戶應(yīng)用程序都運(yùn)行在該級(jí)別。操作系統(tǒng)對(duì)運(yùn)行在內(nèi)核模式下的代碼是不設(shè)防的,所以不管是建設(shè)還是破壞內(nèi)核模式下的編程都是值得去研究的。

圖1-WIN2000系統(tǒng)的分層結(jié)構(gòu)

在物理硬件與系統(tǒng)核心之間有一個(gè)硬件抽象層(HardwareAbstractionLayer),它屏蔽了不同平臺(tái)硬件的差異,向操作系統(tǒng)的上層提供了一套統(tǒng)一的接口。從圖中我們還可以看到,設(shè)備驅(qū)動(dòng)程序(DeviceDriver)是被I/O管理器(I/OManager)包圍起來(lái)的,即驅(qū)動(dòng)程序與操作系統(tǒng)上層的通信全部都要通過(guò)I/O管理器。這給驅(qū)動(dòng)程序的編寫(xiě)帶來(lái)了很大的便利,因?yàn)楹芏嘀T如接收用戶的請(qǐng)求、與用戶程序交換數(shù)據(jù)、內(nèi)存映射、掛接中斷、同步等等麻煩的工作都由I/O管理器代勞了。

驅(qū)動(dòng)程序的分類(lèi)

驅(qū)動(dòng)程序并不像所有人想的那樣一定要和硬件打交道,我粗略的把他分為兩類(lèi):硬驅(qū)動(dòng)和軟驅(qū)動(dòng)。硬驅(qū)動(dòng)就是對(duì)硬件直接編程進(jìn)行控制,這類(lèi)驅(qū)動(dòng)通常必須遵守硬件的通信協(xié)議,直接對(duì)硬件進(jìn)行端口訪問(wèn)、中斷響應(yīng)、DMA傳輸。它包括:串、并行口,鍵盤(pán),文件系統(tǒng),SCSI,網(wǎng)絡(luò)等驅(qū)動(dòng)程序;另外一種軟驅(qū)動(dòng)呢?不需要直接對(duì)硬件就行操作。我認(rèn)為他可以理解為它是在硬驅(qū)動(dòng)之上的一層更為高級(jí)的驅(qū)動(dòng)。我想學(xué)習(xí)的主要是軟驅(qū)動(dòng)。

一般來(lái)說(shuō),設(shè)備驅(qū)動(dòng)程序的任務(wù)主要有兩個(gè):第一,接受來(lái)自用戶程序的讀寫(xiě)請(qǐng)求,把用戶的數(shù)據(jù)傳送給設(shè)備,或把從設(shè)備接收到的數(shù)據(jù)傳送給用戶;第二,輪詢(xún)?cè)O(shè)備或處理來(lái)自設(shè)備的中斷請(qǐng)求,完成數(shù)據(jù)傳輸。

驅(qū)動(dòng)程序的結(jié)構(gòu)

在這里,我主要介紹WDM的結(jié)構(gòu)。WDM(Windows driver module)是什么東西呢?在Windows98\95下面,也許你聽(tīng)得最多的是VXD,我只知道VXD是一種驅(qū)動(dòng)程序,和WDM差不多的東西。只是因?yàn)閃indows2000是WindowsNT那條線過(guò)來(lái)的東西,要加上兩個(gè)主要的新功能:即插即用(Plug and Play)和電源管理(Power Menage),又不能用Windows98\95那一套,所以就搞出一個(gè)叫WDM這么個(gè)東西,來(lái)支持PNP和PM.。其實(shí)想想,現(xiàn)在的技術(shù)名詞還不是一般的多啊!總之wdm大家都叫它windows驅(qū)動(dòng)程序模型

Windows2000里有叫即插即用管理器和I\O(此I\O非彼I\O端口)管理器的兩個(gè)東西。比如說(shuō)我在機(jī)器上插了一張符合PCI規(guī)范的PCI卡。即插即用管理器會(huì)發(fā)現(xiàn)這張卡插在第N個(gè)插槽上,然后即插即用管理器會(huì)說(shuō)它找到了這樣一張卡,它就去找有沒(méi)有現(xiàn)成的驅(qū)動(dòng)程序,如果沒(méi)有找到,它會(huì)告訴我們,我找到了這樣一張卡,請(qǐng)你插入這張卡的驅(qū)動(dòng)程序盤(pán)。好,我們就把驅(qū)動(dòng)程序盤(pán)給它,即插即用管理器會(huì)去找驅(qū)動(dòng)程序盤(pán)上的INF文件,找到后它會(huì)比較PCI卡上的標(biāo)志和INF文件里的標(biāo)志是否相同,如果相同,它就會(huì)依照INF文件里提供的路徑去找驅(qū)動(dòng)程序,找到之后就可以交給I\O管理器,I\O管理器會(huì)裝載這個(gè)驅(qū)動(dòng)程序。I\O管理器在做了一些接口的工作后,即插即用管理器會(huì)先分配好相關(guān)的資源給PCI卡,比如說(shuō)I\O端口空間、內(nèi)存空間和中斷向量,然后告訴這張卡的驅(qū)動(dòng)程序,我給你分配了這些資源,你看怎么的。如果你沒(méi)有怎么的或不敢怎么的,那就趕快記下這些資源,以備后用。
    下面說(shuō)I\O管理器這個(gè)東西。上面我們講到I\O管理器裝載這個(gè)驅(qū)動(dòng)程序,驅(qū)動(dòng)程序有一個(gè)大門(mén),還有N多的小門(mén)。I\O管理器先從大門(mén)進(jìn)去(因?yàn)镮\O管理器只找得到大門(mén),I\O管理器是不是很傻,NO,當(dāng)然有它的道理,你別問(wèn)我:I\O管理器怎么找到大門(mén)的?驅(qū)動(dòng)程序無(wú)非就是一些文件,I\O管理器把這么些文件加載到系統(tǒng)中去),去找一樣?xùn)|西:進(jìn)小門(mén)的地圖。我們要在大門(mén)進(jìn)去的房間里放這張地圖(驅(qū)動(dòng)程序都是我們?cè)斓模覀儺?dāng)然有驅(qū)動(dòng)程序的地圖啦)。I\O管理器找到了地圖,就可以自由進(jìn)出大小門(mén)了。———這些大小門(mén)說(shuō)白了就是函數(shù)(不要問(wèn)我函數(shù)是什么東東),小門(mén)的地圖就是函數(shù)的地址。I\O管理器知道了這些函數(shù)的地址,當(dāng)然就可以調(diào)用這些函數(shù)啦。還有一個(gè)叫IRP的東西,中文名叫I\O請(qǐng)求包。我們這樣來(lái)理解它:在用戶的應(yīng)用程序這一端,要和驅(qū)動(dòng)程序?qū)υ挘鼈冎g不是簡(jiǎn)單的調(diào)用函數(shù)(至于為什么,我現(xiàn)在也不知道),應(yīng)用程序和驅(qū)動(dòng)程序之間有I\O管理器隔著,應(yīng)用程序?qū)︱?qū)動(dòng)程序的操作,首先由I\O管理器處理成一個(gè)包,這個(gè)包里面有應(yīng)用程序請(qǐng)求的操作內(nèi)容、傳送的數(shù)據(jù)等等一些東西,然后I\O管理器把這個(gè)包扔給驅(qū)動(dòng)程序,驅(qū)動(dòng)程序依照包里的請(qǐng)求,完成操作,把該回傳的數(shù)據(jù)放進(jìn)包里,再把包扔還給I\O管理器,I\O管理器再把數(shù)據(jù)返回給應(yīng)用程序。——這里所說(shuō)的包,就是IRP。
    這里說(shuō)的只是WDM結(jié)構(gòu)的一部分,但是有了這一部分知識(shí),其它部分就不難懂了。通過(guò)上面的介紹你看見(jiàn)了什么。你可以想象得出驅(qū)動(dòng)程序是什么樣子的嗎?我是這樣想的。驅(qū)動(dòng)程序好像就是一個(gè)函數(shù)庫(kù),只不過(guò)在大門(mén)的地方放了一張地圖。而這個(gè)大門(mén)與地圖我們見(jiàn)到過(guò)嗎?好像有點(diǎn)像dll文件呢。在早些時(shí)候我學(xué)dll的時(shí)候,我就只會(huì)用dll來(lái)存放函數(shù)。

Feedback

# re: 驅(qū)動(dòng)程序開(kāi)發(fā)-概述  回復(fù)  更多評(píng)論   

2006-02-28 14:08 by 笑笑生
謝謝,我正需要一些快速入門(mén)的東西,不錯(cuò),收藏

# re: 驅(qū)動(dòng)程序開(kāi)發(fā)-概述  回復(fù)  更多評(píng)論   

2007-03-13 10:39 by 李維
太感謝了
希望版主能多分享一些文章喔^^

# re: 驅(qū)動(dòng)程序開(kāi)發(fā)-概述  回復(fù)  更多評(píng)論   

2007-03-23 10:21 by AaronZ
太簡(jiǎn)單了,希望能深入。

# re: 驅(qū)動(dòng)程序開(kāi)發(fā)-概述  回復(fù)  更多評(píng)論   

2007-11-14 16:46 by 4kapple
說(shuō)的很生動(dòng),很人性化~

# re: 驅(qū)動(dòng)程序開(kāi)發(fā)-概述  回復(fù)  更多評(píng)論   

2014-06-27 11:29 by 孫老師
你好,你同學(xué)里有難就業(yè)的嗎?
有這樣的同學(xué),請(qǐng)一定介紹到銳英源來(lái)學(xué)啊!
銳英源軟件開(kāi)發(fā)培訓(xùn),全國(guó)性?xún)r(jià)比最高的軟件開(kāi)發(fā)培訓(xùn)。
全面能力、綜合教材、海量源碼和因人施教,保證掌握工作能力,打開(kāi)項(xiàng)目經(jīng)理和系統(tǒng)分析之門(mén)。
銳英源有大量聯(lián)系就業(yè)企業(yè),在培訓(xùn)時(shí)讓你獨(dú)立完成項(xiàng)目,培養(yǎng)獨(dú)立表達(dá)能力;
讓你帶作品去面試,這樣會(huì)讓企業(yè)求著你去工作。
鄭州本地朋友可直接來(lái)鄭州實(shí)訓(xùn)基地學(xué)習(xí),外地學(xué)員可來(lái)鄭州學(xué)習(xí),也可網(wǎng)絡(luò)遠(yuǎn)程教學(xué)掌握工作能力。
銳英源是首個(gè)承諾網(wǎng)絡(luò)遠(yuǎn)程教學(xué)掌握工作能力的機(jī)構(gòu)。編程思維啟蒙能增強(qiáng)自學(xué)理解能力和自制能力,結(jié)合在線督促,保證效果。
銳英源主頁(yè)www.wisestudy.cn
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久国产精品久久久久久电车| 狠狠色丁香婷婷综合| 亚洲国内自拍| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲香蕉伊综合在人在线视看| 亚洲精品一区二区三区蜜桃久 | 久久一区二区三区四区| 亚洲国产高清在线| 亚洲激情视频在线播放| 欧美视频一区在线| 久久成人18免费网站| 久久久青草青青国产亚洲免观| 亚洲国产清纯| 中日韩男男gay无套| 国产一区二区无遮挡| 欧美成人综合网站| 欧美精品精品一区| 欧美一区二区三区在线| 久久综合伊人77777麻豆| 一本色道久久综合亚洲精品小说| 亚洲一区日韩在线| 亚洲高清在线视频| 中文在线一区| 噜噜噜91成人网| 中文无字幕一区二区三区| 欧美专区第一页| 亚洲精选一区| 久久成人av少妇免费| 一区二区三区高清在线观看| 欧美在线你懂的| 国产精品99久久久久久白浆小说| 欧美一区二区在线看| 中国成人在线视频| 久久亚洲一区二区三区四区| 亚洲在线观看免费| 欧美大片免费观看| 久久―日本道色综合久久| 欧美日韩在线一区二区| 欧美xx69| 韩日欧美一区二区| 亚洲专区欧美专区| a4yy欧美一区二区三区| 久久国产日韩欧美| 欧美一区激情视频在线观看| 欧美日本不卡高清| 亚洲成人中文| 1000部精品久久久久久久久| 香蕉乱码成人久久天堂爱免费| 一区二区激情视频| 欧美大片免费观看| 欧美成人精品| 亚洲第一天堂av| 久久午夜电影| 猫咪成人在线观看| 一区二区三区中文在线观看| 午夜影视日本亚洲欧洲精品| 午夜精品国产| 国产精品日韩欧美综合| 亚洲一区二区高清| 性欧美精品高清| 国产美女在线精品免费观看| 亚洲一区二区三区成人在线视频精品| 一区二区三区日韩欧美| 欧美日韩另类字幕中文| 亚洲乱码国产乱码精品精98午夜| 亚洲免费成人av电影| 欧美丰满高潮xxxx喷水动漫| 亚洲国产小视频在线观看| 亚洲欧洲一区二区三区在线观看| 美女91精品| 亚洲黄色精品| 亚洲一区bb| 国产欧美一区二区在线观看| 欧美一级黄色网| 蜜桃av一区| 亚洲精选一区| 国产精品久久久久久久7电影| 亚洲午夜精品久久| 久久久精品日韩欧美| 在线观看日韩一区| 欧美日本国产在线| 亚洲一区日韩在线| 欧美jizz19hd性欧美| 99国产精品久久| 国产精品久久久对白| 欧美在线亚洲在线| 亚洲第一免费播放区| 亚洲一区二区黄| 国产在线不卡精品| 欧美高清视频在线播放| 一区二区三区色| 麻豆成人在线播放| 中文国产一区| 久久裸体视频| 亚洲精品免费网站| 欧美专区18| 亚洲人体大胆视频| 国产精品色午夜在线观看| 麻豆精品一区二区av白丝在线| 99精品国产在热久久下载| 久久国产福利| 一本久久综合| 伊人久久大香线| 国产精品久久77777| 可以看av的网站久久看| 亚洲伊人第一页| 亚洲国产精品99久久久久久久久| 午夜视频在线观看一区二区三区 | 欧美在线你懂的| 亚洲精品乱码久久久久久日本蜜臀 | 欧美日韩成人精品| 欧美在线观看www| 一本色道婷婷久久欧美| 噜噜噜久久亚洲精品国产品小说| 亚洲一区二区三区在线播放| 亚洲高清av在线| 国产亚洲精品久久久久动| 欧美日韩激情网| 免费不卡视频| 久久久99国产精品免费| 亚洲在线中文字幕| 一本色道久久88综合亚洲精品ⅰ | 欧美aaa级| 久久国产一二区| 亚洲综合精品| 宅男精品视频| 亚洲最新视频在线| 亚洲精品三级| 亚洲清纯自拍| 亚洲国产精品va在线观看黑人| 久久影视三级福利片| 欧美一区二区三区在| 欧美一区二区三区在线播放| 亚洲一区在线观看视频| 一区二区黄色| 亚洲一区二区动漫| 亚洲女性裸体视频| 亚洲欧美日韩国产一区| 亚洲天天影视| 亚洲自拍偷拍网址| 午夜精品三级视频福利| 午夜精品亚洲| 欧美亚洲免费| 久久高清国产| 久久这里只有| 欧美大片在线观看| 亚洲国产精品尤物yw在线观看| 亚洲福利电影| 亚洲另类一区二区| 亚洲男女毛片无遮挡| 欧美亚洲在线| 久久亚洲电影| 欧美黄色aa电影| 欧美日韩中文精品| 国产精品专区h在线观看| 国产视频在线观看一区二区三区| 国产视频一区在线观看一区免费| 精品91视频| 亚洲日本欧美天堂| 亚洲午夜久久久久久久久电影院| 亚洲女人天堂av| 美国十次了思思久久精品导航| 性色av香蕉一区二区| 久久中文字幕一区二区三区| 亚洲午夜小视频| 亚洲午夜av在线| 午夜精品久久久久久久白皮肤| 亚洲欧美中文字幕| 欧美一区亚洲| 亚洲国产91精品在线观看| 欧美激情二区三区| 一区二区激情视频| 欧美一级一区| 欧美大片专区| 国产精品手机在线| 玉米视频成人免费看| 日韩一区二区精品| 久久久女女女女999久久| 亚洲日韩欧美视频一区| 亚洲综合视频一区| 欧美精品 日韩| 国产一区二区三区久久 | 美女精品一区| 国产精品久久国产愉拍| 伊甸园精品99久久久久久| 亚洲视频大全| 亚洲国产91| 久久久久一区二区| 国产伦精品一区二区三区视频黑人 | 国产日韩在线看| 99成人精品| 免费在线播放第一区高清av| 亚洲一区二区三区涩| 欧美乱人伦中文字幕在线| 激情伊人五月天久久综合| 亚欧成人在线| 亚洲丝袜av一区| 欧美日韩一区二区三区高清| 亚洲区免费影片| 免费试看一区|