Windows驅動開發技術詳解

Windows驅動開發技術詳解

《Windows驅動開發技術詳解》是2008年7月1日由電子工業出版社出版的圖書,作者是張帆、史彩成。

基本介紹

  • 書名:Windows驅動開發技術詳解
  • 作者:張帆   史彩成
  • ISBN:9787121068461
  • 類別:作業系統/系統開發
  • 頁數:530
  • 定價:¥65.00
  • 出版社:電子工業出版社
  • 出版時間:2008-7-1
  • 開本:16開
編輯推薦,作者簡介,內容簡介,圖書目錄,

編輯推薦

原創經典,威盛一線工程師傾力打造。深入驅動核心,剖析作業系統底層運行機制,通過實例引導,快速學——中國工程院院士
院士推薦
目前,電子系統設計廣泛採用通用作業系統,達到降低系統的設計難度和縮短研發周期。實現作業系統與硬體快速信息交換是電子系統設計的關鍵。
通用作業系統硬體驅動程式的開發,編寫者不僅需要精通硬體設備、計算機匯流排,而且需要Windows作業系統知識以及調試技巧。學習和掌握Windows硬體驅動程式的開發是電子系統設計人員必備的能力。
本書是作者結合教學和科研實踐經驗編寫而成的,不僅詳細介紹了Windows核心原理,並且介紹了編程技巧和套用實例,兼顧了在校研究生和工程技術人員的實際需求,對教學、生產和科研有現實的指導意義,是一本值得推薦的專著。

作者簡介

張帆:畢業於北京理工大學電子工程系,曾就職於威盛電子有限公司,現就職於北京創毅視訊科技有限公司。長期從事PCI、USB、SDIO、串口、攝像頭等設備的WindowsS驅動程式開發。對Windows作業系統核心有深入的研究,並且有豐富的Windows驅動程式開發經驗。
史彩成: 博士後,北京理工大學信息科學技術學院副教授,資深電子系統專家,主要從事圖像處理、雷射信號處理、數據融合及ASIC設計等領域的研究工作。

內容簡介

該書由淺入深、循序漸進地介紹了Windows驅動程式的開發方法與調試技巧。本書最大的特色在於每一節的例子都是經過精挑細選的,具有很強的針對性。力求讓讀者通過親自動手實驗,掌握各類Windows驅動程式的開發技巧,學習儘可能多的Windows底層知識。本書適用於中、高級系統程式設計師,同時也可用做高校計算機專業作業系統實驗課的補充教材。
本書共分23章,內容涵蓋了Windows作業系統的基本原理、NT驅動程式與WDM驅動程式的構造、驅動程式中的同步異步處理方法、驅動程式中即插即用功能、驅動程式的各種調試技巧等。同時,還針對流行的PCI驅動程式、USB驅動程式、虛擬串口驅動程式、攝像頭驅動程式、SDIO驅動程式進行了詳細的介紹。

圖書目錄

第1篇 入門篇
第1章 從兩個最簡單的驅動談起
本章向讀者呈現兩個最簡單的Windows驅動程式,一個是NT式的驅動程式,另一個是WDM式的驅動程式。這兩個驅動程式沒有操作具體的硬體設備,只是在系統里創建了虛擬設備。在隨後的章節中,它們會作為基本驅動程式框架,被本書其他章節的驅動程式開發所復用。筆者將帶領讀者編寫代碼、編譯、安裝和調試程式
第2章 Windows操作驅動的基本概念
驅動程式被作業系統載入在核心模式下,它與Windows作業系統核心的其他組件進行密切互動。本章主要介紹Windows作業系統核心的基本概念,同時還介紹應用程式和驅動程式之間的通信方法。
第3章 Windows驅動編譯環境配置、安裝及調試
本章將帶領讀者一步步對驅動程式進行編譯、安裝和簡單的調試工作。這些步驟雖然簡單,但往往困惑著初次接觸驅動程式的開發者。
第4章 驅動程式的基本結構
本章首先對Windows驅動程式的兩個重要數據結構進行介紹,分別是驅動對象和設備對象數據結構。另外還要介紹NT驅動程式和WDM驅動程式的入口函式、卸載例程、各種IRP派遣上函式等。
第5章 Windows記憶體管理
本章圍繞著驅動程式中的記憶體操作進行了介紹。在驅動程式開發中,首先要注意分頁記憶體和非分頁記憶體的使用。同時,還需要區分物理記憶體地址和虛擬記憶體地址這兩個概念。
第6章 Windows核心函式
本章介紹了Windows核心模式下的一些常用核心函式,這些函式在驅動程式的開發中將會經常用到。
第7章 派遣函式
本章重點介紹了驅動程式中的處理IRP請求的派遣函式。所有對設備的操作最終將轉化為IRP請求,這些IRP請求會被傳送到派遣函式處理。
第2篇 進階篇
第8章 驅動程式的同步處理
本章介紹了驅動程式中常用的同步處理辦法,並且將核心模式下的同步處理方法和用戶模式下的同步處理方法做了比較。另外,本章還介紹了中斷請求級、自旋鎖等同步處理機制。
第9章 IRP的同步
本章詳細地介紹了IRP的同步處理方法和異步處理方法。另外,本章還介紹了StartIO例程、中斷服務例程、DPC服務例程。
第10章 定時器
本章總結了在核心模式下的四種等待方法,讀者可以利用這些方法靈活地用在自己的驅動程式中。最後本章還介紹了如何對IRP的逾時情況進行處理。
第11章 驅動程式調用驅動程式
本章主要介紹了如何在驅動程式中調用其他驅動程式。比較簡單的方法是將被調用的驅動程式以檔案的方式操作。比較高級的方法是構造各種IRP,並將這些IRP傳送到被調用的驅動程式中。
第12章 分層驅動程式
本章主要介紹了分層驅動的概念。分層驅動可以將功能複雜的驅動程式分解為多個功能簡單的驅動程式。多個分層的驅動程式形成一個設備堆疊,IRP請求首先傳送到設備堆疊的頂層,然後依次穿越每層的設備堆疊,最終完成IRP請求。
第13章 讓設備實現即插即用
本章首先介紹即插即用的概念和驅動程式支持即插即用功能的必要性。另外,本章還介紹如何利用WDM驅動程式開發框架設計支持即插即用功能的驅動程式。
第14章 電源管理
本章主要介紹了如何在WDM驅動程式中進行電源處理。電源處理主要是處理好電源狀態和設備狀態。
第3篇 實用篇
第15章 I/O連線埠操作
本章總結了多種I/O連線埠操作的方法。這些方法本質上是一樣的,都是將連線埠輸入輸出的彙編指令運行在核心模式中。
第16章 PCI設備驅動
本章主要介紹PCI設備的驅動開發。首先介紹了PCI匯流排協定。作為驅動程式設計師,開發PCI驅動程式首先要了解PCI配置空間。根據讀取PCI配置空間,可以得到PCI設備的所有資源。另外,本章還總結了四種獲取PCI配置空間的方法。
第17章 USB設備驅動
本章首先介紹了USB匯流排協定的基本框架,其中包括USB匯流排的拓撲結構,USB通信的流程,還有USB的四種傳輸模式。另外,本章介紹了如何編寫USB匯流排設備的驅動程式。
第18章 SDIO設備驅動
本章首先介紹了SDIO協定,講述了SD記憶體卡和SDIO卡的兼容問題。然後介紹了SDIO協定中的傳送命令、回應命令、傳送數據等相關協定。隨後,本章又介紹了Windows中,DDK提供的對SDIO卡設備的支持。然後介紹了如何利用匯流排驅動,使SDIO設備初始化,接收中斷,傳送和接收數據等操作。
第19章 虛擬串口設備驅動
本章介紹了串口開發的框架模型,在串口的AddDevice例程中需要暴露出一個串口的符號連線,另外在相應的註冊表中需要進行設定。在串口與應用程式的通信中,主要是一組DDK定義的IO控制碼,這些IO控制碼負責由應用程式向驅動發出請求。
第20章 攝像頭設備驅動程式
本章主要介紹了微軟提供的攝像頭驅動框架。在該框架中,微軟提供了類驅動和小驅動的概念。對於驅動程式設計師的任務就是編寫小驅動程式。
第4篇 提高篇
第21章 再論IRP
本章將相關IRP的操作做了進一步的總結。首先是轉發IRP,歸納了幾種不同的方式。其次總結了創建IRP的幾種不同方法。創建IRP總的來說分為創建同步IRP和創建異步IRP。對於創建同步IRP,操作比較簡單,I/O管理器會負責回收IRP的相關記憶體,但是使用不夠靈活。對於創建異步IRP,操作比較複雜,程式設計師需要自己負責對IRP及相關記憶體回收,但使用十分靈活。
第22章 過濾驅動程式
本章主要介紹WDM和NT式過濾驅動程式開發。過濾驅動程式開發十分靈活,可以修改已有驅動程式的功能,也可以對數據進行過濾加密。另外,利用過濾驅動程式還能編寫出很多具有相當功能強大的程式來。
第23章 高級調試技巧
本章將介紹一些Windows開發驅動的高級調試技巧。有一些高級驅動程式調試技巧,可以幫助程式設計師找出驅動程式中的Bug。另外,利用一些第三方工具軟體,也可以幫助程式設計師找到驅動程式中的漏洞,從而提高開發效率。

相關詞條

熱門詞條

聯絡我們