驅(qū)動(dòng)程序入門_第1頁
驅(qū)動(dòng)程序入門_第2頁
驅(qū)動(dòng)程序入門_第3頁
驅(qū)動(dòng)程序入門_第4頁
驅(qū)動(dòng)程序入門_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、什么是驅(qū)動(dòng)程序?為術(shù)語“驅(qū)動(dòng)程序”給出單一的準(zhǔn)確定義比較困難。就最基本的意義而言,驅(qū)動(dòng)程序是一個(gè)軟件 組件,可讓操作系統(tǒng)和設(shè)備彼此通信。例如,假設(shè)應(yīng)用程序需要從設(shè)備中讀取某些數(shù)據(jù)。應(yīng)用程 序會(huì)調(diào)用由操作系統(tǒng)實(shí)現(xiàn)的函數(shù),操作系統(tǒng)會(huì)調(diào)用由驅(qū)動(dòng)程序?qū)崿F(xiàn)的函數(shù)。驅(qū)動(dòng)程序(由設(shè)計(jì)和 制造該設(shè)備的同一公司編寫)了解如何與設(shè)備硬件通信以獲取數(shù)據(jù)。當(dāng)驅(qū)動(dòng)程序從設(shè)備獲取數(shù)據(jù) 后,它會(huì)將數(shù)據(jù)返回到操作系統(tǒng),操作系統(tǒng)將數(shù)據(jù)返回至應(yīng)用程序。擴(kuò)大定義到目前為止,我們的說明采用以下幾種方式進(jìn)行簡(jiǎn)單化:并非所有驅(qū)動(dòng)程序都必須由設(shè)計(jì)該設(shè)備的公司編寫。在多種情形下,設(shè)備根據(jù)已發(fā)布的 硬件標(biāo)準(zhǔn)來設(shè)計(jì)。這表示驅(qū)動(dòng)程序可以由Micr

2、osoft編寫,設(shè)備設(shè)計(jì)者無須提供驅(qū)動(dòng) 程序。并非所有驅(qū)動(dòng)程序都直接與設(shè)備通信。對(duì)于給定的I/O請(qǐng)求(如從設(shè)備讀取數(shù)據(jù)), 通常有一些驅(qū)動(dòng)程序(在堆棧中進(jìn)行分層)參與該請(qǐng)求??梢暬褩5膫鹘y(tǒng)方式是將第 一個(gè)參與對(duì)象放在頂部,將最后一個(gè)參與對(duì)象放在底部,如此圖所示。堆棧中的某些驅(qū) 動(dòng)程序可能通過將請(qǐng)求從一種格式轉(zhuǎn)換至另一種格式來參與。這些驅(qū)動(dòng)程序不會(huì)與設(shè)備 直接通信;它們只操縱請(qǐng)求并將請(qǐng)求傳遞至堆棧下方的驅(qū)動(dòng)程序。堆棧中直接與設(shè)備通信的一個(gè)驅(qū)動(dòng)程序稱為“函數(shù)驅(qū)動(dòng)程序”;執(zhí)行輔助處理的驅(qū)動(dòng)程 序稱為“篩選器驅(qū)動(dòng)程序”。某些篩選器驅(qū)動(dòng)程序遵守并記錄有關(guān)I/O請(qǐng)求的信息,但不會(huì)主動(dòng)參與這些請(qǐng)求。例 如

3、,某些篩選器驅(qū)動(dòng)程序充當(dāng)驗(yàn)證程序以確保堆棧中的其他驅(qū)動(dòng)程序正確處理I/O請(qǐng) 求。我們可以擴(kuò)大“驅(qū)動(dòng)程序”的定義,方法是表示驅(qū)動(dòng)程序?yàn)樽袷鼗騾⑴c操作系統(tǒng)與設(shè)備之間通信 的任一軟件組件。軟件驅(qū)動(dòng)程序我們的擴(kuò)大定義相當(dāng)準(zhǔn)確,但仍不完整,原因是某些驅(qū)動(dòng)程序與任何硬件設(shè)備根本不關(guān)聯(lián)。例 如,假設(shè)你需要編寫可以訪問核心操作系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的工具,這些結(jié)構(gòu)僅可以由核模式下運(yùn)行的 代碼進(jìn)行訪問??梢酝ㄟ^將工具拆分成兩個(gè)組件來執(zhí)行該操作。第一個(gè)組件在用戶模式下運(yùn)行且 提供用戶界面。第二個(gè)組件在核模式下運(yùn)行且可以訪問核心操作系統(tǒng)數(shù)據(jù)。在用戶模式下運(yùn)行的 組件稱為應(yīng)用程序,在核模式下運(yùn)行的組件稱為“軟件驅(qū)動(dòng)程序”。軟件

4、驅(qū)動(dòng)程序與硬件設(shè)備不 關(guān)聯(lián)。有關(guān)處理器模式的詳細(xì)信息,請(qǐng)參閱用戶模式和核模式。此圖說明了與核模式軟件驅(qū)動(dòng)程序通信的用戶模式應(yīng)用程序。其他說明軟件驅(qū)動(dòng)程序始終在核模式下運(yùn)行。編寫軟件驅(qū)動(dòng)程序的主要原因是獲取對(duì)僅在核模式下可用的 受保護(hù)數(shù)據(jù)的訪問權(quán)限。但是設(shè)備驅(qū)動(dòng)程序不會(huì)始終需要訪問核模式數(shù)據(jù)和資源。因此某些設(shè)備 驅(qū)動(dòng)程序在用戶模式下運(yùn)行。有一系列的驅(qū)動(dòng)程序我們尚未提及,“總線驅(qū)動(dòng)程序”。若要了解總線驅(qū)動(dòng)程序,你需要了解設(shè) 備節(jié)點(diǎn)和設(shè)備樹。有關(guān)設(shè)備樹、設(shè)備節(jié)點(diǎn)以及總線驅(qū)動(dòng)程序的信息,請(qǐng)參閱設(shè)備節(jié)點(diǎn)和設(shè)備堆棧。 到目前為止,我們的說明過度簡(jiǎn)化了“函數(shù)驅(qū)動(dòng)程序”的定義。我們表示設(shè)備的函數(shù)驅(qū)動(dòng)程序?yàn)?堆

5、棧中直接與設(shè)備通信的一個(gè)驅(qū)動(dòng)程序。對(duì)于直接連接到外圍組件互連(PCI)總線的設(shè)備而言, 以上為真PCI設(shè)備的函數(shù)驅(qū)動(dòng)程序獲取映射到設(shè)備上端口和存資源的地址。函數(shù)驅(qū)動(dòng)程序通過 寫入這些地址直接與設(shè)備通信。但是在多種情形下,設(shè)備未直接連接到PCI總線。相反設(shè)備連 接到的主機(jī)總線適配器連接到PCI總線。例如,USB toaster連接到主機(jī)總線適配器(稱為USB 主控制器),該適配器連接到PCI總線。USB toaster具有函數(shù)驅(qū)動(dòng)程序,USB主控制器也具 有函數(shù)驅(qū)動(dòng)程序toaster的函數(shù)驅(qū)動(dòng)程序與toaster間接通信,方法是將請(qǐng)求發(fā)送至USB主 控制器的函數(shù)驅(qū)動(dòng)程序。然后,USB主控制器的函

6、數(shù)驅(qū)動(dòng)程序與USB主控制器硬件直接通信, 該硬件與 toaster 通信。是否需要編寫驅(qū)動(dòng)程序?0 (共1)對(duì)本文的評(píng)價(jià)是有幫助-評(píng)價(jià)此主題Microsoft Windows包含適用于許多設(shè)備類型的置驅(qū)動(dòng)程序。如果有適用于你的設(shè)備類型的置驅(qū) 動(dòng)程序,則不必自行編寫驅(qū)動(dòng)程序。你的設(shè)備可以使用置的驅(qū)動(dòng)程序。適用于USB設(shè)備的置驅(qū)動(dòng)程序如果你的設(shè)備屬于由USB設(shè)備工作組(DWG)定義的設(shè)備類,則可能已經(jīng)存在適用于該設(shè)備的Windows USB類驅(qū)動(dòng)程序。有關(guān)詳細(xì)信息、,請(qǐng)參閱支持的USB設(shè)備類的驅(qū)動(dòng)程序適用于其他設(shè)備的置驅(qū)動(dòng)程序目前,Microsoft為以下其他類型的設(shè)備提供置驅(qū)動(dòng)程序:設(shè)備技術(shù)和

7、驅(qū)動(dòng)程序置驅(qū)動(dòng)程序Windows 支持描述ACPI: ACPI驅(qū)動(dòng)程序Acpi.sysWindows XP 及 更高版本Microsoft 通過 Acpi.sys驅(qū)動(dòng)程序 和ACPI BIOS,為基 本的ACPI設(shè)備功 能提供支持。為增強(qiáng) ACPI設(shè)備的功能, 供應(yīng)商可以提供 WDM功能驅(qū)動(dòng)程序。 有關(guān) Windows ACPI 支持的詳細(xì)信息,請(qǐng) 參閱ACPI設(shè)計(jì)指 南中的支持ACPI設(shè)備。音頻:Microsoft音頻類驅(qū)動(dòng)程序PortCls.sysWindows XP 及 更高版本Microsoft通過自 身的端口類驅(qū)動(dòng)程 序(PortCl)為基 本的音頻渲染和音 頻捕捉提供支持。音 頻設(shè)

8、備的硬件供應(yīng) 商有責(zé)任提供兼容 PortCl的適配器驅(qū) 動(dòng)程序。適配器驅(qū)動(dòng) 程序包括初始化代 碼、驅(qū)動(dòng)程序管理代 碼(包括 DriverEntry 功能) 和音頻微型端口驅(qū) 動(dòng)程序的集合。有 關(guān)詳細(xì)信息,請(qǐng)參閱 端口類簡(jiǎn)介。總線:本機(jī) SD總線驅(qū) 動(dòng)程序、本 機(jī)SD存儲(chǔ) 類驅(qū)動(dòng)程序 和存儲(chǔ)微型 端口驅(qū)動(dòng)程序sdbus.sys、sffdisk.sys、sffp_sd.sysWindows Vista及更高版本Microsoft 為 SD 讀卡器提供如下支 持:操作系統(tǒng)為直接 連接到PCI總線的 SD主機(jī)控制器提供 支持。當(dāng)系統(tǒng)枚舉 SD主機(jī)控制器時(shí), 會(huì)加載本機(jī)SD總 線驅(qū)動(dòng)程序 (sdbus.

9、sys)。如果 用戶插入SD存卡, 則除總線驅(qū)動(dòng)程序 以外,Windows還會(huì) 加載本機(jī)SD存儲(chǔ) 類驅(qū)動(dòng)程序 (sffdisk.sys)和 存儲(chǔ)微型端口驅(qū)動(dòng) 程序(sffp_sd.sys)。如 果用戶插入具有其 他類型功能的SD 卡(例如GPS或無 線LAN),則Windows會(huì)加載供 應(yīng)商為該設(shè)備提供 的驅(qū)動(dòng)程序。HID:HID I2C驅(qū)動(dòng)程序HIDI2C.sysWindows 8 及更 高版本Microsoft為支持 簡(jiǎn)單外設(shè)總線 (SPB)和通用I/O (GPIO)的 SoC 系 統(tǒng)上的HID overI2C設(shè)備提供支持。 它通過 HIDI2C.sys 驅(qū)動(dòng)程序?qū)崿F(xiàn)此支 持。有關(guān)詳細(xì)信息

10、, 請(qǐng)參閱 HID overI2C。HID:傳統(tǒng)游戲端口驅(qū)動(dòng)程序HidGame.sys、Gameenum.sysWindows VistaWindowsServer 2003Windows XP在 Windows Vista 及更早版本中, Microsoft 通過 HidGame.sys 和 Gameenum.sys 馬區(qū)動(dòng) 程序?yàn)閭鹘y(tǒng)(非 USB、非藍(lán)牙、非 I2C)游戲端口提供 支持。有關(guān)詳細(xì)信 息,請(qǐng)參 閱 Windows 中支 持的HID傳輸。HID:傳統(tǒng)鍵盤類驅(qū)動(dòng)程序Kbdclass.sysWindows XP 及 更高版本Microsoft 通過 Kbdclass.sys 驅(qū)動(dòng)

11、程序?yàn)閭鹘y(tǒng)(非 USB、非藍(lán)牙、非 I2C)鍵盤提供支持。 有關(guān)詳細(xì)信息,請(qǐng)參 閱鍵盤和鼠標(biāo)HID 客戶端驅(qū)動(dòng)程序。為 增強(qiáng)傳統(tǒng)鍵盤的功 能,供應(yīng)商可以提供 鍵盤篩選器驅(qū)動(dòng)程 序。有關(guān)詳細(xì)信息, 請(qǐng)參閱 MSDN代碼 庫中的Kbfiltr示例。HID:傳統(tǒng)鼠標(biāo)類驅(qū)動(dòng)程序Mouclass.sysWindows XP 及 更高版本Microsoft 通過 Mouclass.sys 驅(qū)動(dòng) 程序?yàn)閭鹘y(tǒng)(非 USB、非藍(lán)牙、非 I2C)鼠標(biāo)提供支持。 鍵盤和鼠標(biāo)HID客 戶端驅(qū)動(dòng)程序。為增 強(qiáng)傳統(tǒng)鼠標(biāo)的功能, 供應(yīng)商可以提供鼠 標(biāo)篩選器驅(qū)動(dòng)程序。 有關(guān)詳細(xì)信息,請(qǐng)參 閱 MSDN代碼庫中 的Moufil

12、tr示例。HID: PS/2 (i8042prt) 驅(qū)動(dòng)程序I8042prt.sysWindows XP 及 更高版本Microsoft 通過 I8042.sys驅(qū)動(dòng)程 序?yàn)閭鹘y(tǒng)PS/2鍵 盤和鼠標(biāo)提供支持。 為增強(qiáng)PS/2鼠標(biāo) 或鍵盤的功能,供應(yīng) 商可以提供鍵盤或 鼠標(biāo)篩選器驅(qū)動(dòng)程 序。有關(guān)詳細(xì)信息, 請(qǐng)參閱MSDN代碼 庫中的 Kbfiltr 示例和 Moufiltr 示例。映像:設(shè)備 的Web服 務(wù)(WSD) 掃描類驅(qū)動(dòng) 程序WSDScan.sysWindows Vista及更高版本Microsoft 通過WSD掃描驅(qū)動(dòng)程序 (wsdscan.sys)為 Web服務(wù)掃描程序(即在Web上

13、使用 的掃描程序)提供支 持。但是,支持WSD 分布式掃描管理的 Web服務(wù)掃描程序 設(shè)備必須實(shí)現(xiàn)兩個(gè) Web服務(wù)協(xié)議。有關(guān) 詳細(xì)信息,請(qǐng)參閱使 用設(shè)備Web服務(wù)的WIA。打?。篗icrosoft繪圖儀驅(qū)動(dòng)程序MsplotWindows XP 及 更高版本Microsoft 通過 Microsoft繪圖儀 驅(qū)動(dòng)程序(Msplot) 為支持惠普?qǐng)D形語 言的繪圖儀提供支 持。為增強(qiáng)繪圖儀的 功能,你可以創(chuàng)建由 一個(gè)或多個(gè)繪圖儀 特性數(shù)據(jù)(PCD)文 件組成的微型驅(qū)動(dòng) 程序。有關(guān)詳細(xì)信 息,請(qǐng)參閱繪圖儀驅(qū) 動(dòng)程序微型驅(qū)動(dòng)程 度。打?。篗icrosoftPostScript 打印機(jī)驅(qū)動(dòng) 程序Pscri

14、ptWindows XP 及 更高版本Microsoft 通過PostScript 打印機(jī) 驅(qū)動(dòng)程序(Pscript)為PostScript 打印機(jī) 提供支持。為增強(qiáng)PostScript 打印機(jī) 的功能,你可以創(chuàng)建 由一個(gè)或多個(gè)PostScript 打印機(jī) 描述(PPD)文件和 字體(NTF)文件組 成的微型驅(qū)動(dòng)程序。 有關(guān)詳細(xì)信息,請(qǐng)參 閱Pscript微型驅(qū) 動(dòng)程序。打印:Microsoft通用打印機(jī)驅(qū)動(dòng)程序UnidrvWindows XP 及 更高版本Microsoft通過通 用打印機(jī)驅(qū)動(dòng)程序 (Unidrv)為非 PostScript 打印機(jī) 提供支持。為增強(qiáng)非 PostScript

15、打印機(jī) 的功能,你可以創(chuàng)建 由一個(gè)或多個(gè)通用 打印機(jī)描述(GPD)打印:Microsoft第4版打 印機(jī)驅(qū)動(dòng)程序打印:MicrosoftXPS打印機(jī)驅(qū)動(dòng)程序XPSDrvWindows 8 及更 高版本W(wǎng)indows Vista及更高版本文件組成的微型驅(qū) 動(dòng)程序。有關(guān)詳細(xì)信 息,請(qǐng)參閱 Microsoft 通 用打印機(jī)驅(qū)動(dòng)程序從 Windows 8 開 始,Microsoft 提供 了支持 PostScript 和非 PostScript 打印機(jī)以及繪圖儀的單個(gè)置類驅(qū)動(dòng)程 序。該驅(qū)動(dòng)程序可取 代Microsoft繪圖 儀驅(qū)動(dòng)程序、 Microsoft通用打 印機(jī)驅(qū)動(dòng)程序和MicrosoftPos

16、tScript 打印機(jī) 驅(qū)動(dòng)程序。該打印機(jī) 驅(qū)動(dòng)程序可通過自 身提供基本的打印 支持,無需任何修 改。有關(guān)詳細(xì)信息, 請(qǐng)參閱第4版打印 機(jī)驅(qū)動(dòng)程序。Microsoft 通過XPS打印機(jī)驅(qū)動(dòng)程 序(XPSDrv)為打 印XPS文檔格式提供支持。該驅(qū)動(dòng)程序 擴(kuò)展了 Microsoft 基于GDI的第3 版打印機(jī)驅(qū)動(dòng)程序 體系結(jié)構(gòu),可支持消 耗XML紙規(guī)(XPS) 文檔。通過XPSDrv 打印機(jī)驅(qū)動(dòng)程序, XPS文檔格式可用 作后臺(tái)打印文件格 式和文檔文件格式。 該XPSDrv打印機(jī)驅(qū)動(dòng)程序可通過自 身提供基本的XPS 打印支持,無需任何 修改。有關(guān)詳細(xì)信 息,請(qǐng)參閱 XPSDrv 打印機(jī)驅(qū)動(dòng)程序。

17、傳感器:傳感器HID類驅(qū)動(dòng)程序SensorsHIDClassDriver.dllWindows 8 及更 高版本Microsoft 通過HID類驅(qū)動(dòng)程序?yàn)?筆和觸摸設(shè)備提供 支持。由于Windows 8包括此HID類驅(qū)動(dòng)程序和 相應(yīng)的HID I2C及HID USB微型端口 驅(qū)動(dòng)程序,因此你不 需要實(shí)現(xiàn)自己的驅(qū) 動(dòng)程序。你只需在指 針設(shè)備的固件中報(bào) 告此白皮書中描述 的使用方法。Windows將使用你 的固件及其HID驅(qū) 動(dòng)程序啟用設(shè)備的 觸摸和指針功能,并 為Windows觸摸和 指針API提供訪問 該設(shè)備的權(quán)限。觸摸:Windows 指針設(shè)備驅(qū)動(dòng)程序Windows 8 及更 高版本Micro

18、soft 通過HID類驅(qū)動(dòng)程序?yàn)?筆和觸摸設(shè)備提供 支持。由于Windows 8包括此HID類驅(qū)動(dòng)程序和 相應(yīng)的HID I2C及 HID USB微型端口 驅(qū)動(dòng)程序,因此你不 需要實(shí)現(xiàn)自己的驅(qū) 動(dòng)程序。你只需在指 針設(shè)備的固件中報(bào) 告此白皮書中描述 的使用方法。Windows將使用你 的固件及其HID驅(qū) 動(dòng)程序啟用設(shè)備的 觸摸和指針功能,并 為Windows觸摸和 指針API提供訪問 該設(shè)備的權(quán)限。WPD:媒體傳輸協(xié)議類驅(qū)動(dòng)程序WpdMtpDr.dll、WpdMtp.dll、WpdMtpUs.dll、WpdConns.dll和 WpdUsb.sysWindows Vista及更高版本Micros

19、oft通過媒 體傳輸協(xié)議類驅(qū)動(dòng) 程序?yàn)樾枰B接 Windows的便攜設(shè) 備(例如,音樂播放 器、數(shù)字相機(jī)、手機(jī) 和健康監(jiān)控設(shè)備)提 供支持。使用該類驅(qū) 動(dòng)程序的供應(yīng)商必 須在設(shè)備上實(shí)現(xiàn) MTP類協(xié)議。(對(duì)于 靜物數(shù)字相機(jī),MTP 實(shí)現(xiàn)必須與PTP后 向兼容。)有關(guān)詳細(xì) 信息,請(qǐng)參閱硬件供 應(yīng)商指南。選擇驅(qū)動(dòng)程序模型4 (共6)對(duì)本文的評(píng)價(jià)是有幫助 -評(píng)價(jià)此主題Microsoft Windows提供了多種驅(qū)動(dòng)程序模型,你可以使用這些模型編寫驅(qū)動(dòng)程序。最佳驅(qū)動(dòng)程 序模型的選擇策略取決于你計(jì)劃編寫的驅(qū)動(dòng)程序類型。下文介紹了這些選項(xiàng):設(shè)備函數(shù)驅(qū)動(dòng)程序設(shè)備篩選器驅(qū)動(dòng)程序軟件驅(qū)動(dòng)程序文件系統(tǒng)篩選器驅(qū)動(dòng)程序

20、文件系統(tǒng)驅(qū)動(dòng)程序 有關(guān)各種類型驅(qū)動(dòng)程序之間差異的介紹,請(qǐng)參閱什么是驅(qū)動(dòng)程序?和設(shè)備節(jié)點(diǎn)和設(shè)備堆棧。以下 部分說明了如何為每種類型的驅(qū)動(dòng)程序選擇模型。為設(shè)備函數(shù)驅(qū)動(dòng)程序選擇驅(qū)動(dòng)程序模型當(dāng)你設(shè)計(jì)一個(gè)硬件設(shè)備時(shí),首先要考慮的事項(xiàng)之一就是你是否需要編寫函數(shù)驅(qū)動(dòng)程序。提出下列 問題:是否可以完全避免編寫驅(qū)動(dòng)程序?如果必須編寫函數(shù)驅(qū)動(dòng)程序,則最好使用哪個(gè)驅(qū)動(dòng)程序模型?若要回答這些問題,請(qǐng)確定設(shè)備的何處可以容納設(shè)備和驅(qū)動(dòng)程序技術(shù)中介紹的技術(shù)列表。參閱該 特定技術(shù)的文檔,以確定是否需要編寫函數(shù)驅(qū)動(dòng)程序以及了解哪些驅(qū)動(dòng)程序模型可供設(shè)備使用。 某些個(gè)別技術(shù)具有微型驅(qū)動(dòng)程序模型。在微型驅(qū)動(dòng)程序模型中,設(shè)備驅(qū)動(dòng)程序由

21、兩個(gè)部分組成: 一個(gè)部分處理常規(guī)任務(wù),另一部分處理設(shè)備特定的任務(wù)。通常,Microsoft編寫通用部分,設(shè)備 制造商編寫設(shè)備特定的部分。設(shè)備特定的部分具有多種名稱,其部分名稱都共享前綴“微型”。 以下是微型驅(qū)動(dòng)程序模型中使用的一些名稱:顯示器微型端口驅(qū)動(dòng)程序音頻微型端口驅(qū)動(dòng)程序電池微型類驅(qū)動(dòng)程序藍(lán)牙協(xié)議驅(qū)動(dòng)程序HID微型驅(qū)動(dòng)程序WIA微型驅(qū)動(dòng)程序NDIS微型端口驅(qū)動(dòng)程序存儲(chǔ)器微型端口驅(qū)動(dòng)程序流微型驅(qū)動(dòng)程序有關(guān)微型驅(qū)動(dòng)程序模型的概述,請(qǐng)參閱微型驅(qū)動(dòng)程序和驅(qū)動(dòng)程序?qū)Σ⒎窃O(shè)備和驅(qū)動(dòng)程序技術(shù)中列出的每項(xiàng)技術(shù)都有專用的微型驅(qū)動(dòng)程序模型。特定技術(shù)的文檔可能 會(huì)建議你使用核模式驅(qū)動(dòng)程序框架(KMDF):其他

22、技術(shù)的文檔可能會(huì)建議你使用用戶模式驅(qū)動(dòng)程 序框架(UMDF)。關(guān)鍵點(diǎn)是你應(yīng)從研究特定設(shè)備技術(shù)的文檔開始。如果你的設(shè)備技術(shù)具有微型驅(qū) 動(dòng)程序模型,則必須使用微型驅(qū)動(dòng)程序模型。否則就遵循技術(shù)特定的文檔中有關(guān)是使用UMDF、 KMDF還是Windows驅(qū)動(dòng)程序模型(WDM)的建議。為設(shè)備篩選器驅(qū)動(dòng)程序選擇驅(qū)動(dòng)程序模型一些驅(qū)動(dòng)程序頻繁參與單個(gè)I/O請(qǐng)求(如從設(shè)備讀取數(shù)據(jù))。驅(qū)動(dòng)程序在堆棧中進(jìn)行分層,并 且可視化堆棧的常規(guī)方法是將第一個(gè)驅(qū)動(dòng)程序放在頂部,將最后一個(gè)驅(qū)動(dòng)程序放在底部。堆棧具 有一個(gè)函數(shù)驅(qū)動(dòng)程序并且還可以具有篩選器驅(qū)動(dòng)程序。有關(guān)函數(shù)驅(qū)動(dòng)程序和篩選器驅(qū)動(dòng)程序的介 紹.請(qǐng)參閱什么是驅(qū)動(dòng)程序?和設(shè)

23、備節(jié)點(diǎn)和設(shè)備堆棧如果你準(zhǔn)備為設(shè)備編寫篩選器驅(qū)動(dòng)程序,則確定設(shè)備的何處可以容納設(shè)備和驅(qū)動(dòng)程序技術(shù)中介紹 的技術(shù)列表。查看特定設(shè)備技術(shù)的文檔是否有關(guān)于選擇篩選器驅(qū)動(dòng)程序模型的任何指南。如果設(shè) 備技術(shù)的文檔未提供此指南,則首先考慮使用UMDF作為驅(qū)動(dòng)程序模型。如果篩選器驅(qū)動(dòng)程序需 要訪問的數(shù)據(jù)結(jié)構(gòu)無法通過UMDF獲取,則考慮使用KMDF作為驅(qū)動(dòng)程序模型。在極端少見的情 形中,驅(qū)動(dòng)程序需要訪問的數(shù)據(jù)結(jié)構(gòu)無法通過KMDF獲取,則使用WDM作為驅(qū)動(dòng)程序模型。為軟件驅(qū)動(dòng)程序選擇驅(qū)動(dòng)程序模型未與設(shè)備關(guān)聯(lián)的驅(qū)動(dòng)程序稱為“軟件驅(qū)動(dòng)程序”。有關(guān)軟件驅(qū)動(dòng)程序的介紹,請(qǐng)參閱什么是驅(qū)動(dòng) 程序?主題。軟件驅(qū)動(dòng)程序很有用,原

24、因是這些驅(qū)動(dòng)程序可以在核模式下運(yùn)行,這樣為其提供了 受保護(hù)操作系統(tǒng)數(shù)據(jù)的訪問權(quán)限。有關(guān)處理器模式的信息、,請(qǐng)參閱用戶模式和核模式。有關(guān)軟件驅(qū)動(dòng)程序,你的兩個(gè)選項(xiàng)為KMDF和舊的Windows NT驅(qū)動(dòng)程序模型。使用KMDF和 舊的Windows NT模型,你可以在編寫驅(qū)動(dòng)程序時(shí)無須考慮即插即用(PnP)和電源管理。你可 以改為專心于驅(qū)動(dòng)程序的首要任務(wù)上。使用KMDF,你不必考慮PnP和電源,因?yàn)榭蚣軙?huì)為你處 理PnP和電源。使用舊的Windows NT模型,你不必考慮PnP和電源,原因是舊的驅(qū)動(dòng)程序 在與PnP和電源管理完全無關(guān)的環(huán)境中運(yùn)行。我們的建議是使用KMDF,尤其是當(dāng)你已熟悉KMDF時(shí)

25、。如果你希望驅(qū)動(dòng)程序與PnP和電源管理 完全無關(guān),則使用舊的Windows NT模型。如果你需要編寫注意到電源轉(zhuǎn)換或PnP事件的軟件, 則不能使用舊的Windows NT模型;必須使用KMDFo注意在極少情形中,你需要編寫注意到PnP或電源事件的軟件驅(qū)動(dòng)程序,并且驅(qū)動(dòng)程序需要訪問無法通過KMDF獲取的數(shù)據(jù),則必須使用WDM。為文件系統(tǒng)篩選器驅(qū)動(dòng)程序選擇驅(qū)動(dòng)程序模型有關(guān)為文件系統(tǒng)篩選器驅(qū)動(dòng)程序選擇模型的幫助,請(qǐng)參閱“文件系統(tǒng)微過濾驅(qū)動(dòng)程序”和文件系 統(tǒng)篩選器驅(qū)動(dòng)程序。為文件系統(tǒng)驅(qū)動(dòng)程序選擇驅(qū)動(dòng)程序模型有關(guān)為文件系統(tǒng)驅(qū)動(dòng)程序選擇模型的幫助,請(qǐng)參閱文件系統(tǒng)微過濾驅(qū)動(dòng)程序相關(guān)主題核模式驅(qū)動(dòng)程序框架用戶

26、模式驅(qū)動(dòng)程序框架Windows兼容硬件開發(fā)板此主題尚未評(píng)級(jí) - 評(píng)價(jià)此主題Windows兼容硬件開發(fā)板(比如Intel Sharks Cove)使你能夠?yàn)橛布M件開發(fā)軟件和驅(qū)動(dòng)程序, 這些組件通常將合并到手機(jī)、平板電腦和其他高度集成或嵌入的系統(tǒng)中。開發(fā)板Summer 2014:新的Microsoft計(jì)劃將使硬件工程師使用專為特定SoC環(huán)境設(shè)計(jì)的經(jīng)濟(jì)高效的 開發(fā)板更輕松地開發(fā)和驗(yàn)證Windows驅(qū)動(dòng)程序。硬件工程師過去在為SoC平臺(tái)創(chuàng)建Windows 驅(qū)動(dòng)程序方面一直面臨許多挑戰(zhàn)。與具有PCI插槽和USB端口的電腦不同,類似平板電腦和貝 殼機(jī)的SoC系統(tǒng)使用低功率部總線,缺少標(biāo)準(zhǔn)連接器、即插即用支持和發(fā)現(xiàn)機(jī)制。通常,這些 設(shè)備受安全啟動(dòng)的保護(hù),而且無法用于開發(fā)或測(cè)試第三方驅(qū)動(dòng)程序。這將很快得到改變。硬件 工程師將能夠購買現(xiàn)成的開發(fā)板,專門用于特定的SoC環(huán)境。Intel Sharks Cove 板將在2014年下半年上市的一種板是Intel Sharks Cove硬件開發(fā)板。Intel Sharks Cove板將支持設(shè)備的驅(qū)動(dòng)程序開發(fā),這些設(shè)備使用各種接口,包括:GPIO TOC o 1-5 h z I2CI2SUARTSDIOUSB即將提供:關(guān)于Intel Sharks Cove板的其他信息

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論