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

任我行

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

驅動程序開發-概述

Posted on 2006-01-03 10:03 任我行 閱讀(2636) 評論(5)  編輯 收藏 引用 所屬分類: 驅動開發

很久沒有網了,出了一段時間的差,近來,莫名的就有點郁悶!前不久在大富翁上發了一份帖子是關于delphi程序員的發展,大家的反應并不都是很好。于是開始覺得可以考慮換個方向。以前我是做MIS開發的。換哪個方向呢?人越多的方向,好像越是沒有前途。想想當初上大學,那可是越多人考的學校,學費越貴啊!可現在的職業呢?越多人干的事,越是沒有前途了。考慮來考慮去,決定學習一下驅動程序的開發吧!于是從網上查找了一些資料,看的懂的覺得蠻不錯適合我這種小學生的就貼了出來,算是學習筆記吧!

用戶模式與內核模式

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

圖1-WIN2000系統的分層結構

在物理硬件與系統核心之間有一個硬件抽象層(HardwareAbstractionLayer),它屏蔽了不同平臺硬件的差異,向操作系統的上層提供了一套統一的接口。從圖中我們還可以看到,設備驅動程序(DeviceDriver)是被I/O管理器(I/OManager)包圍起來的,即驅動程序與操作系統上層的通信全部都要通過I/O管理器。這給驅動程序的編寫帶來了很大的便利,因為很多諸如接收用戶的請求、與用戶程序交換數據、內存映射、掛接中斷、同步等等麻煩的工作都由I/O管理器代勞了。

驅動程序的分類

驅動程序并不像所有人想的那樣一定要和硬件打交道,我粗略的把他分為兩類:硬驅動和軟驅動。硬驅動就是對硬件直接編程進行控制,這類驅動通常必須遵守硬件的通信協議,直接對硬件進行端口訪問、中斷響應、DMA傳輸。它包括:串、并行口,鍵盤,文件系統,SCSI,網絡等驅動程序;另外一種軟驅動呢?不需要直接對硬件就行操作。我認為他可以理解為它是在硬驅動之上的一層更為高級的驅動。我想學習的主要是軟驅動。

一般來說,設備驅動程序的任務主要有兩個:第一,接受來自用戶程序的讀寫請求,把用戶的數據傳送給設備,或把從設備接收到的數據傳送給用戶;第二,輪詢設備或處理來自設備的中斷請求,完成數據傳輸。

驅動程序的結構

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

Windows2000里有叫即插即用管理器和I\O(此I\O非彼I\O端口)管理器的兩個東西。比如說我在機器上插了一張符合PCI規范的PCI卡。即插即用管理器會發現這張卡插在第N個插槽上,然后即插即用管理器會說它找到了這樣一張卡,它就去找有沒有現成的驅動程序,如果沒有找到,它會告訴我們,我找到了這樣一張卡,請你插入這張卡的驅動程序盤。好,我們就把驅動程序盤給它,即插即用管理器會去找驅動程序盤上的INF文件,找到后它會比較PCI卡上的標志和INF文件里的標志是否相同,如果相同,它就會依照INF文件里提供的路徑去找驅動程序,找到之后就可以交給I\O管理器,I\O管理器會裝載這個驅動程序。I\O管理器在做了一些接口的工作后,即插即用管理器會先分配好相關的資源給PCI卡,比如說I\O端口空間、內存空間和中斷向量,然后告訴這張卡的驅動程序,我給你分配了這些資源,你看怎么的。如果你沒有怎么的或不敢怎么的,那就趕快記下這些資源,以備后用。
    下面說I\O管理器這個東西。上面我們講到I\O管理器裝載這個驅動程序,驅動程序有一個大門,還有N多的小門。I\O管理器先從大門進去(因為I\O管理器只找得到大門,I\O管理器是不是很傻,NO,當然有它的道理,你別問我:I\O管理器怎么找到大門的?驅動程序無非就是一些文件,I\O管理器把這么些文件加載到系統中去),去找一樣東西:進小門的地圖。我們要在大門進去的房間里放這張地圖(驅動程序都是我們造的,我們當然有驅動程序的地圖啦)。I\O管理器找到了地圖,就可以自由進出大小門了。———這些大小門說白了就是函數(不要問我函數是什么東東),小門的地圖就是函數的地址。I\O管理器知道了這些函數的地址,當然就可以調用這些函數啦。還有一個叫IRP的東西,中文名叫I\O請求包。我們這樣來理解它:在用戶的應用程序這一端,要和驅動程序對話,它們之間不是簡單的調用函數(至于為什么,我現在也不知道),應用程序和驅動程序之間有I\O管理器隔著,應用程序對驅動程序的操作,首先由I\O管理器處理成一個包,這個包里面有應用程序請求的操作內容、傳送的數據等等一些東西,然后I\O管理器把這個包扔給驅動程序,驅動程序依照包里的請求,完成操作,把該回傳的數據放進包里,再把包扔還給I\O管理器,I\O管理器再把數據返回給應用程序。——這里所說的包,就是IRP。
    這里說的只是WDM結構的一部分,但是有了這一部分知識,其它部分就不難懂了。通過上面的介紹你看見了什么。你可以想象得出驅動程序是什么樣子的嗎?我是這樣想的。驅動程序好像就是一個函數庫,只不過在大門的地方放了一張地圖。而這個大門與地圖我們見到過嗎?好像有點像dll文件呢。在早些時候我學dll的時候,我就只會用dll來存放函數。

Feedback

# re: 驅動程序開發-概述  回復  更多評論   

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

# re: 驅動程序開發-概述  回復  更多評論   

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

# re: 驅動程序開發-概述  回復  更多評論   

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

# re: 驅動程序開發-概述  回復  更多評論   

2007-11-14 16:46 by 4kapple
說的很生動,很人性化~

# re: 驅動程序開發-概述  回復  更多評論   

2014-06-27 11:29 by 孫老師
你好,你同學里有難就業的嗎?
有這樣的同學,請一定介紹到銳英源來學啊!
銳英源軟件開發培訓,全國性價比最高的軟件開發培訓。
全面能力、綜合教材、海量源碼和因人施教,保證掌握工作能力,打開項目經理和系統分析之門。
銳英源有大量聯系就業企業,在培訓時讓你獨立完成項目,培養獨立表達能力;
讓你帶作品去面試,這樣會讓企業求著你去工作。
鄭州本地朋友可直接來鄭州實訓基地學習,外地學員可來鄭州學習,也可網絡遠程教學掌握工作能力。
銳英源是首個承諾網絡遠程教學掌握工作能力的機構。編程思維啟蒙能增強自學理解能力和自制能力,結合在線督促,保證效果。
銳英源主頁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>
            亚洲欧美综合国产精品一区| 国产精品成人国产乱一区| 女主播福利一区| 久久人人97超碰人人澡爱香蕉| 午夜精品久久久久久久99热浪潮| 亚洲精品一区二区三区不| 亚洲精品在线视频| 亚洲一区视频| 久久永久免费| 亚洲欧洲日韩女同| 中文欧美在线视频| 久久精品毛片| 欧美日韩国产高清| 国产伦精品一区二区三区免费| 欧美日韩一区二区在线观看| 国产日韩亚洲欧美精品| 亚洲丰满少妇videoshd| 野花国产精品入口| 久久精品人人做人人综合| 欧美国产精品va在线观看| 夜夜嗨av一区二区三区网页| 久久久激情视频| 国产精品va在线播放| 亚洲第一天堂av| 欧美久久久久久| 国产一区二区按摩在线观看| 国产精品一区二区三区观看| 国产啪精品视频| 国产美女精品| 在线观看福利一区| 一区二区三区三区在线| 久热国产精品| 欧美www视频在线观看| 久久久久久亚洲精品杨幂换脸 | 欧美日韩免费看| 国产一区视频在线观看免费| 日韩视频在线播放| 久久精品国产99精品国产亚洲性色 | 欧美一区二区三区久久精品茉莉花| 久久综合九色综合网站| 欧美偷拍一区二区| 91久久久亚洲精品| 免费试看一区| 欧美在线一二三| 国产精品极品美女粉嫩高清在线 | 国产一区二区三区在线观看精品| 99精品视频一区| 免费亚洲电影在线观看| 欧美一区二区三区精品| 国产欧美日韩亚洲一区二区三区 | 国产一区 二区 三区一级| 亚洲欧美欧美一区二区三区| 亚洲激情社区| 欧美丰满高潮xxxx喷水动漫| 一区三区视频| 免费观看久久久4p| 久久久亚洲国产美女国产盗摄| 国产精品人人爽人人做我的可爱| 99视频在线精品国自产拍免费观看 | 欧美91福利在线观看| 一区二区三区中文在线观看| 久久免费精品日本久久中文字幕| 免费观看在线综合色| 乱中年女人伦av一区二区| 一区二区三区在线高清| 美女任你摸久久| 久久日韩粉嫩一区二区三区| 在线电影欧美日韩一区二区私密| 久久精品av麻豆的观看方式| 亚洲欧美文学| 国产一区二区三区的电影| 欧美在线视频一区二区| 午夜精品久久久久久久| 国产中文一区二区| 美女免费视频一区| 欧美高清在线精品一区| 在线综合+亚洲+欧美中文字幕| 一本色道久久88精品综合| 国产精品免费久久久久久| 欧美在线三区| 久久综合成人精品亚洲另类欧美| 亚洲精品1区2区| 亚洲精品在线免费观看视频| 国产精品福利在线| 久久频这里精品99香蕉| 欧美黄色影院| 亚洲欧美制服另类日韩| 久久精品一区蜜桃臀影院| 亚洲精品一区中文| 亚洲午夜精品在线| 亚洲电影在线播放| 一本色道久久综合狠狠躁篇怎么玩 | 99re6热只有精品免费观看| 亚洲免费播放| 国产欧美在线观看| 欧美激情中文不卡| 国产精品爱久久久久久久| 久久久成人网| 欧美精品日韩| 久久久久久久高潮| 欧美区日韩区| 免费短视频成人日韩| 国产精品毛片高清在线完整版| 麻豆免费精品视频| 国产精品久久久久9999高清 | 欧美电影在线| 国产精品网站在线观看| 欧美福利影院| 国产午夜精品在线观看| 一区二区三区欧美成人| 亚洲人成绝费网站色www| 午夜精品在线视频| 亚洲一区区二区| 女生裸体视频一区二区三区| 午夜精品美女久久久久av福利| 小黄鸭精品aⅴ导航网站入口| 亚洲福利电影| 国产精品一区二区在线观看网站| 欧美区日韩区| 久久久夜精品| 久久天天狠狠| 亚洲精品在线观看免费| 亚洲精品国产精品乱码不99按摩| 91久久精品一区| 伊人久久婷婷| 国产女精品视频网站免费| 女仆av观看一区| 夜夜嗨av一区二区三区网页| 日韩视频免费| 亚洲一区二区三区在线| 欧美日韩免费区域视频在线观看| 欧美国产亚洲视频| 亚洲国产裸拍裸体视频在线观看乱了| 欧美综合二区| 夜夜夜久久久| 欧美亚洲一区| 国产精品手机在线| 欧美精品尤物在线| 亚洲一区亚洲二区| 六月婷婷一区| 韩国一区二区在线观看| 国产专区欧美精品| 国产免费一区二区三区香蕉精| 伊人久久婷婷色综合98网| 欧美福利网址| 欧美一级片一区| 久久精品女人的天堂av| 一本色道精品久久一区二区三区| 午夜精品网站| 久热综合在线亚洲精品| 欧美在线free| 国产精品美女久久久浪潮软件| 久久久久久亚洲精品中文字幕| 一区二区三区成人| 久久综合伊人77777麻豆| 蜜臀av性久久久久蜜臀aⅴ| 亚洲第一主播视频| 欧美精品国产一区二区| 尤物九九久久国产精品的分类| 欧美一级大片在线免费观看| 久久久国际精品| 国产一区二区三区四区老人| 久久资源av| 在线视频精品| 久久久久久久一区二区| 亚洲三级视频| 国产欧美日韩激情| 美女精品在线观看| 亚洲视频国产视频| 欧美高清成人| 午夜久久电影网| 在线观看一区| 国产精品免费区二区三区观看| 久久人人爽国产| 亚洲天堂男人| 欧美大片第1页| 欧美影院视频| 一本色道久久88综合日韩精品| 国产在线欧美日韩| 欧美视频免费| 欧美大片一区二区三区| 欧美一级淫片aaaaaaa视频| 欧美大片91| 久久精品亚洲热| 亚洲免费伊人电影在线观看av| 亚洲丰满在线| 国产一区二区三区久久久| 欧美日韩一区二区高清| 免费不卡欧美自拍视频| 欧美一级播放| 亚洲自拍16p| 在线一区二区三区四区五区| 欧美电影在线| 蜜桃av一区二区三区| 久久国产精彩视频| 亚洲欧美国产不卡| 亚洲午夜av| 亚洲视频成人| 亚洲美女黄网| 亚洲另类视频|