《WDM驅(qū)動(dòng)程序簡(jiǎn)介》PPT課件.ppt
《《WDM驅(qū)動(dòng)程序簡(jiǎn)介》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《WDM驅(qū)動(dòng)程序簡(jiǎn)介》PPT課件.ppt(13頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
設(shè)備驅(qū)動(dòng)程序設(shè)計(jì) WDM驅(qū)動(dòng)程序簡(jiǎn)介 第二講 WindowsXP驅(qū)動(dòng)程序分類 內(nèi)核模式驅(qū)動(dòng)程序的屬性 可移植性 源代碼級(jí)可移植可配置性 避免對(duì)硬件特征和系統(tǒng)設(shè)置作絕對(duì)假設(shè) 避免在代碼中直接引用硬件可搶先性和可中斷性多處理器安全基于對(duì)象數(shù)據(jù)包驅(qū)動(dòng)異步 WindowsXP系統(tǒng)結(jié)構(gòu) WDM驅(qū)動(dòng)程序模型 WDM模型主要包含以下內(nèi)容 1 描述了設(shè)備驅(qū)動(dòng)程序的標(biāo)準(zhǔn)結(jié)構(gòu)和應(yīng)該完成的主要功能 2 描述了操作系統(tǒng)為設(shè)備驅(qū)動(dòng)提供的各種服務(wù) 以及操作系統(tǒng)與設(shè)備驅(qū)動(dòng)程序之間詳細(xì)的交互過(guò)程3 為常見(jiàn)類型的設(shè)備提供一系列的總線驅(qū)動(dòng)程序和類驅(qū)動(dòng)程序 WDM驅(qū)動(dòng)程序的分類 功能驅(qū)動(dòng) 每個(gè)WDM驅(qū)動(dòng)都包含功能驅(qū)動(dòng) 它了解使硬件工作的所有細(xì)節(jié) 負(fù)責(zé)具體I O過(guò)程 負(fù)責(zé)處理中斷事件 為用戶提供一種設(shè)備適合的控制方式 總線驅(qū)動(dòng) 查找并發(fā)現(xiàn)硬件設(shè)備 確定設(shè)備的資源使用情況 管理硬件與計(jì)算機(jī)的實(shí)際連接 負(fù)責(zé)物理的I O過(guò)程過(guò)濾器驅(qū)動(dòng) 對(duì)功能驅(qū)動(dòng)程序執(zhí)行I O操作時(shí)進(jìn)行過(guò)濾和監(jiān)視 修改現(xiàn)有功能驅(qū)動(dòng)程序的行為 為用戶提供額外服務(wù)類驅(qū)動(dòng) 實(shí)現(xiàn)某種設(shè)備類型的共通功能 管理整個(gè)設(shè)備類的基本特征 規(guī)范該類設(shè)備與操作系統(tǒng)中其它軟件環(huán)境的接口 采用類驅(qū)動(dòng)有利于分層和功能重用 迷你驅(qū)動(dòng) 包含在類驅(qū)動(dòng)中 用于管理設(shè)備實(shí)例的廠商專有特征例程 類驅(qū)動(dòng)和迷你驅(qū)動(dòng)合在一起才構(gòu)成一個(gè)完整的功能驅(qū)動(dòng)程序 WDM驅(qū)動(dòng)的層次結(jié)構(gòu) 驅(qū)動(dòng)程序如何工作 驅(qū)動(dòng)程序是一個(gè)收集讓操作系統(tǒng)調(diào)用的用來(lái)執(zhí)行各種涉及到硬件操作的子程序的容器 一些例程 如DriverEntry和AddDevice例程和一些特定的I O請(qǐng)求包 IRP 的處理函數(shù)會(huì)出現(xiàn)在每個(gè)這樣的容器中 需要排隊(duì)請(qǐng)求的驅(qū)動(dòng)程序可能還有一個(gè)StartIo例程 而執(zhí)行直接存儲(chǔ)器存取 DMA 操作的驅(qū)動(dòng)程序會(huì)有一個(gè)AdapterControl例程 產(chǎn)生硬件中斷的驅(qū)動(dòng)程序也會(huì)有一個(gè)中斷服務(wù)例程 ISR 和一個(gè)延遲過(guò)程調(diào)用 DPC 例程 sys和exe 像EXE程序一樣 驅(qū)動(dòng)程序也是可執(zhí)行文件 其擴(kuò)展名為 SYS在結(jié)構(gòu)上嚴(yán)格地說(shuō)驅(qū)動(dòng)程序和任何32位的Windows或者控制臺(tái)的應(yīng)用程序沒(méi)什么區(qū)別 和EXE程序一樣 一個(gè)驅(qū)動(dòng)程序也需要許多輔助程序 許多也都是動(dòng)態(tài)鏈接自操作系統(tǒng)內(nèi)核或來(lái)自一組驅(qū)動(dòng)或者其他的支持庫(kù) 但是驅(qū)動(dòng)程序沒(méi)有主程序 取而代之的是其包含了一批系統(tǒng)可以在適當(dāng)?shù)臅r(shí)候調(diào)用的子程序集 驅(qū)動(dòng)程序除了其自己的硬件外不關(guān)心任何別的事情 系統(tǒng)管理了其他的任何事務(wù) 包括決定在何時(shí)運(yùn)行你的驅(qū)動(dòng)程序代碼 操作系統(tǒng)與驅(qū)動(dòng)的交互過(guò)程 系統(tǒng)運(yùn)行時(shí)設(shè)備插入或者系統(tǒng)重新啟動(dòng)發(fā)現(xiàn)了某個(gè)設(shè)備 系統(tǒng)就會(huì)裝載可執(zhí)行的驅(qū)動(dòng)程序到內(nèi)存中 并且調(diào)用其DriverEntry例程 DriveEntry做了一些初始化操作之后返回 即插即用管理器 PnPManager 調(diào)用AddDevice例程 讓其做一些與設(shè)備實(shí)例相關(guān)的初始化操作之后返回 即插即用管理器發(fā)送給驅(qū)動(dòng)程序一些IRP 相應(yīng)的IRP處理函數(shù)處理完該IRP之后返回 一個(gè)應(yīng)用程序打開(kāi)了設(shè)備 因此系統(tǒng)發(fā)送給驅(qū)動(dòng)另一個(gè)IRP 處理函數(shù)進(jìn)行了少量的操作之后返回 操作系統(tǒng)與驅(qū)動(dòng)的交互過(guò)程 應(yīng)用程序嘗試讀取或者寫入一些數(shù)據(jù) 因此系統(tǒng)發(fā)送一個(gè)IRP 處理例程將IRP放入一個(gè)隊(duì)列之后返回 某些I O操作引發(fā)設(shè)備中斷 中斷服務(wù)例程做一些很少的操作 然后請(qǐng)求一個(gè)DPC 之后返回 DPC例程運(yùn)行了 它可能要讀回?cái)?shù)據(jù) 或者繼續(xù)下一次的寫操作等 然后開(kāi)始下一個(gè)排在隊(duì)列中的IRP 之后DPC例程返回系統(tǒng) 隨著時(shí)間變化 在這期間系統(tǒng)會(huì)發(fā)送各種IRP給驅(qū)動(dòng)程序 驅(qū)動(dòng)程序進(jìn)行相應(yīng)的處理 最后 用戶拔出設(shè)備或者關(guān)閉系統(tǒng) 這時(shí) 系統(tǒng)發(fā)送一些IRP 分發(fā)例程做好相應(yīng)的處理 然后返回 系統(tǒng)把驅(qū)動(dòng)程序代碼移出內(nèi)存 應(yīng)用程序與驅(qū)動(dòng)的交互 應(yīng)用程序里面要做的工作首先就是要調(diào)用CreatFile打開(kāi)設(shè)備 具體操作就像打開(kāi)一個(gè)文件一樣 應(yīng)用程序準(zhǔn)備好相應(yīng)的數(shù)據(jù)或者緩沖區(qū)等 調(diào)用相應(yīng)的WIN32API如WriteFile ReadFile DeviceIoControl等 對(duì)設(shè)備進(jìn)行讀寫等各種操作 最后應(yīng)用程序關(guān)閉設(shè)備 具體操作就像關(guān)閉一個(gè)文件一樣- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- WDM驅(qū)動(dòng)程序簡(jiǎn)介 WDM 驅(qū)動(dòng)程序 簡(jiǎn)介 PPT 課件
鏈接地址:http://m.jqnhouse.com/p-6748626.html