注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡操作系統(tǒng)Windows竹林蹊徑:深入淺出windows驅(qū)動開發(fā)

竹林蹊徑:深入淺出windows驅(qū)動開發(fā)

竹林蹊徑:深入淺出windows驅(qū)動開發(fā)

定 價:¥69.00

作 者: 張佩,馬勇,董鑒源 編著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: WINDOWS

ISBN: 9787121125553 出版時間: 2011-02-01 包裝: 平裝
開本: 16開 頁數(shù): 532 字數(shù):  

內(nèi)容簡介

  《竹林蹊徑:深入淺出windows驅(qū)動開發(fā)》是作者根據(jù)多年的工作學習經(jīng)驗,總結的第一手驅(qū)動開發(fā)資料。但它不是一本深刻到最底層的原理性的書,有這種預期的讀者會失望。本書更多的是經(jīng)驗之談,一些實踐中的小發(fā)現(xiàn)小意外,頗為書中內(nèi)容添彩?!吨窳瞩鑿剑荷钊霚\出windows驅(qū)動開發(fā)》的特色之一,是對WDF框架做了較多的切入。本書第一個主要內(nèi)容是(第3~7章)圍繞WDF而展開討論,側重點各有不同。第3章以框架為討論的中心;第4、5兩章以WDF框架開發(fā)USB和1394驅(qū)動;第6章講述內(nèi)核C++編程,也以WDF框架為藍本;第7章講述WDF驅(qū)動的測試和調(diào)試。第二個主要內(nèi)容是關于音視頻驅(qū)動開發(fā)(第10~11章)。音視頻驅(qū)動包括AVStream架構,本書做了較詳細的闡述。第10章講述使用AVStream小端口架構,第11章講述ASIO音頻驅(qū)動開發(fā)。第三個主要內(nèi)容是關于設備驅(qū)動安裝(第12~14章)。第12章講系統(tǒng)安裝模塊,從總體角度闡述系統(tǒng)和設備驅(qū)動如何配合完好地進行工作;第13章講述INF安裝文件的細節(jié),包括各個域的作用,以及諸多安裝指令的使用。第14章講如何編寫驅(qū)動安裝軟件。剩余的一些章節(jié),分別是關于驅(qū)動入門(第1、2章)、Windbg調(diào)試命令(第8章)、內(nèi)核同步(第9章)等內(nèi)容。讀者對象:本書適合一般入門級內(nèi)核程序員,對WDF有興趣,準備開發(fā)USB或1394設備驅(qū)動者,本書尤其有用。本書對于入行較久,經(jīng)驗豐富的程序員,也具有一定的參考價值。

作者簡介

暫缺《竹林蹊徑:深入淺出windows驅(qū)動開發(fā)》作者簡介

圖書目錄

向內(nèi)核世界說一聲:hello,我來了。如果你是一個初學者,并對這個世界充滿好奇心,請從這一章開始,我們一起打招呼~
第1章 Hello World驅(qū)動\t
1.1 從Hello World開始\t
1.1.1 HelloDRIVER\t
1.1.2 代碼解釋\t
1.1.3 驅(qū)動程序的編譯和安裝\t
1.1.4 查看我們的驅(qū)動\t
1.2 虛擬環(huán)境\t
1.2.1 使用虛擬環(huán)境進行驅(qū)動開發(fā)\t
1.2.2 使用VMware虛擬機\t
1.2.3 目標機設置\t
1.2.4 Virtual PC虛擬機\t
1.3 小結\t
如何在規(guī)范的商業(yè)環(huán)境中,開發(fā)成功而有效的驅(qū)動軟件?驅(qū)網(wǎng)站長馬勇(ZnSoft)將向你娓娓道來。你會學到這些內(nèi)容:建立一個簡單而有效的開發(fā)、調(diào)試環(huán)境;64位環(huán)境下的內(nèi)核編程技巧;如何發(fā)布你的驅(qū)動軟件。
第2章 商業(yè)驅(qū)動開發(fā)技術\t
2.1 建立開發(fā)調(diào)試環(huán)境\t
2.1.1 SVN環(huán)境\t
2.1.2 創(chuàng)建工程,導入SVN\t
2.1.3 建立符號服務器\t
2.1.4 用符號調(diào)試\t
2.2 64位驅(qū)動開發(fā)技術\t
2.2.1 64位驅(qū)動編寫技術\t
2.2.2 32位應用程序與64位驅(qū)動混合模式\t
2.3 驅(qū)動程序的發(fā)布與測試\t
2.3.1 驅(qū)動程序簽名\t
2.3.2 驅(qū)動程序測試\t
2.3.3 WHQL\t
2.4 小結\t
WDF是目前最新的驅(qū)動編程框架。當很多內(nèi)核程序員還緊抱WDM的巨大佛腳時,千萬要記住,WDF已是大勢所趨。本章介紹了WDF最重要的幾個概念,并進行了一定程度的深度挖掘。對于WDF框架的三大核心模型:對象模型、事件模型、PNP/Power模型,本章作了重點講述。
第3章 WDF概述\t
3.1 主要特點\t
3.2 框架視圖\t
3.3 兼容性\t
3.4 對象模型\t
3.4.1 對象和句柄\t
3.4.2 引用計數(shù)\t
3.4.3 上下文空間\t
3.4.4 PME接口\t
3.4.5 DDI接口\t
3.4.6 父子關系\t
3.4.7 對象同步\t
3.5 驅(qū)動對象和設備對象\t
3.5.1 驅(qū)動對象\t
3.5.2 驅(qū)動入口DriverEntry\t
3.5.3 設備對象\t
3.5.4 創(chuàng)建設備對象\t
3.5.5 設備棧\t
3.6 IO模型\t
3.6.1 IO目標對象\t
3.6.2 IO目標對象的細節(jié)\t
3.6.3 安全的緩沖區(qū)\t
3.6.4 內(nèi)存對象(一)\t
3.6.5 內(nèi)存對象(二)\t
3.6.6 框架和IO請求\t
3.6.7 更詳細的處理流程\t
3.6.8 IO請求參數(shù)\t
3.6.9 隊列\(zhòng)t
3.6.10 創(chuàng)建IO請求\t
3.7 PNP和電源模型\t
3.8 小結\t
使用WDF框架開發(fā)USB驅(qū)動,方便且簡單。本章首先總體上從硬件和軟件兩個方面介紹USB相關知識點,包括設備的電氣特性、總線結構、USB驅(qū)動類型以及類驅(qū)動。編程方面,從USB設備初始化、數(shù)據(jù)操作以及設備控制等幾個方面來講解,透徹并且翔實。
第4章 WDF USB設備驅(qū)動開發(fā)\t
4.1 USB設備硬件結構\t
4.1.1 主從結構\t
4.1.2 硬件拓撲\t
4.1.3 USB中斷\t
4.2 USB軟件結構\t
4.2.1 總線驅(qū)動\t
4.2.2 系統(tǒng)類驅(qū)動\t
4.2.3 功能驅(qū)動\t
4.2.4 父驅(qū)動與混合設備\t
4.2.5 過濾驅(qū)動\t
4.2.6 USB驅(qū)動棧、設備棧\t
4.3 內(nèi)核開發(fā)\t
4.3.1 設備驅(qū)動\t
4.3.2 入口函數(shù)\t
4.3.3 USB描述符\t
4.3.4 描述符介紹\t
4.3.5 匯總舉例\t
4.3.6 讀取描述符\t
4.3.7 初始化\t
4.3.8 設備初始化函數(shù)\t
4.3.9 創(chuàng)建設備對象\t
4.3.10 設備命名、符號鏈接\t
4.3.11 啟動設備\t
4.3.12 創(chuàng)建隊列\(zhòng)t
4.3.13 停止設備/反初始化\t
4.4 數(shù)據(jù)I/O操作\t
4.4.1 USB控制命令\t
4.4.2 構造并發(fā)送控制命令\t
4.4.3 讀USB中斷端口\t
4.4.4 連續(xù)讀操作\t
4.4.5 數(shù)據(jù)處理函數(shù)\t
4.4.6 中斷端口的效率\t
4.4.7 讀/寫批量端口\t
4.5 設備控制\t
4.5.1 關于I/O Target對象\t
4.5.2 獲取USB版本\t
4.5.3 管道重置\t
4.5.4 設備重置\t
4.5.5 管道中止與終止\t
4.6 用戶程序\t
4.6.1 內(nèi)核讀/寫\t
4.6.2 控制命令\t
4.7 小結\t
1394俗稱火線。大伙平時最多接觸它的地方大概是內(nèi)核調(diào)試時,借助1394卡進行雙機互聯(lián)。本章首先從硬件方面介紹了1394的知識,它的總線結構很特別,極具可擴性,能非常方便地在各種類型的1394設備之間建立數(shù)據(jù)鏈路。內(nèi)核編程方面,本章重點講解了數(shù)據(jù)通信相關知識,分為異步通信和同步通信兩種方式,頗為復雜,相對難于掌握,但套路是現(xiàn)成的,變化的東西不多,可以熟能生巧。本章最后介紹了1394雙機互聯(lián)的原理,有興趣的讀者可參考之。
第5章 WDF 1394驅(qū)動開發(fā)\t
5.1 1394一席談\t
5.1.1 版本情況\t
5.1.2 電源特性\t
5.1.3 1394卡\t
5.1.4 總線拓撲\t
5.2 發(fā)送請求\t
5.2.1 同步方式\t
5.2.2 異步方式\t
5.2.3 對WDM的回憶\t
5.3 總線重置與計數(shù)\t
5.3.1 總線重置\t
5.3.2 設置重置回調(diào)\t
5.3.3 計數(shù)更新\t
5.4 PNP操作\t
5.5 異步通信\t
5.5.1 地址范圍\t
5.5.2 異步讀\t
5.5.3 異步寫\t
5.5.4 異步鎖請求\t
5.5.5 數(shù)據(jù)流\t
5.6 等時通信\t
5.6.1 申請帶寬\t
5.6.2 釋放帶寬\t
5.6.3 等時通道\t
5.6.4 資源句柄\t
5.6.5 緩沖區(qū)掛載\t
5.6.6 緩沖區(qū)解掛\t
5.6.7 開始傳輸\t
5.6.8 停止傳輸\t
5.6.9 其他等時操作\t
5.7 其他操作\t
5.7.1 設備配置\t
5.7.2 獲取控制器信息\t
5.7.3 速度信息\t
5.7.4 廠商自定義命令\t
5.8 安裝與測試\t
5.8.1 1394虛擬設備\t
5.8.2 創(chuàng)建虛擬設備\t
5.8.3 示例代碼\t
5.8.4 安裝與測試\t
5.9 小結\t
內(nèi)核天生適合于C語言編程,但越來越多的內(nèi)核項目,規(guī)模達到10數(shù)萬的規(guī)模。在這種情況下,人們不由地會將目光投向優(yōu)雅的C++語言。總體上說,C和C++是至親好友,內(nèi)核中使用C++本不應有什么大問題,但有幾個暗礁潛伏已久,不小心的程序員,你可千萬不要觸礁。
第6章 內(nèi)核驅(qū)動C++編程\t
6.1 驅(qū)動中的類\t
6.1.1 一個簡單的例子\t
6.1.2 new/delete\t
6.1.3 extern \C\\t
6.1.4 全局/靜態(tài)變量\t
6.1.5 棧的憂慮\t
6.2 類封裝的驅(qū)動程序\t
6.2.1 尋找合適的存儲所\t
6.2.2 類方法與事件函數(shù)\t
6.2.3 KMDF驅(qū)動實現(xiàn)\t
6.2.4 WDM驅(qū)動實現(xiàn)\t
6.3 多態(tài)\t
6.3.1 基類、子類\t
6.3.2 實現(xiàn)多態(tài)\t
6.3.3 測試\t
6.4 小結\t
使用WDF框架編寫的驅(qū)動程序,在測試和調(diào)試的時候,有特殊的工具。本章介紹了目前所知的三個,它們分別是:Windbg擴展調(diào)試命令、WDFTester測試工具、WDFVerifier測試工具。本章將以示例方式,介紹這些工具的使用。
第7章 WDF驅(qū)動測試\t
7.1 WDF錯誤\t
7.1.1 實例分析\t
7.1.2 USB錯誤\t
7.2 WDF擴展調(diào)試命令\t
7.3 WDFTester\t
7.3.1 WDFFiTester\t
7.3.2 使用\t
7.3.3 WDFCallTracer\t
7.4 WDFVerifier\t
7.4.1 識別KMDF驅(qū)動\t
7.4.2 使用與介紹\t
7.5 小結\t
SoftIce漸行漸遠之后,Windbg成為內(nèi)核調(diào)試的第一利器。使用Windbg的最大難點是命令繁多,參數(shù)復雜。本章以總結歸納的形式,介紹了作者在工作中經(jīng)常用到的幾大類調(diào)試命令,并以實例形式一一介紹。作者根據(jù)個人經(jīng)驗所作的分類,未能全備,但能夠保證的是,所有實例翔實而可靠,可以作為可信的參考。
第8章 調(diào)試命令詳解\t
8.1 概述\t
8.1.1 尋求幫助\t
8.1.2 DML語言\t
8.1.3 基本信息\t
8.1.4 基本設置\t
8.1.5 格式化顯示\t
8.1.6 開始調(diào)試\t
8.2 符號與源碼\t
8.2.1 模塊列表\t
8.2.2 模塊信息\t
8.2.3 符號路徑\t
8.2.4 符號加載\t
8.2.5 符號搜索\t
8.2.6 源碼命令\t
8.3 進程與線程\t
8.3.1 進程命令\t
8.3.2 線程命令\t
8.3.3 異常與事件\t
8.3.4 局部變量\t
8.3.5 顯示類型\t
8.4 斷點\t
8.4.1 軟件斷點\t
8.4.2 硬件斷點\t
8.4.3 其他操作\t
8.5 內(nèi)存命令\t
8.5.1 查看內(nèi)存\t
8.5.2 內(nèi)存信息\t
8.5.3 其他命令\t
8.6 小結\t
相信大多數(shù)人在學習內(nèi)核開發(fā)的時候,都問過這樣一個問題:內(nèi)核驅(qū)動怎么向用戶程序發(fā)送消息,或者如何調(diào)用Win32函數(shù)。用戶程序和內(nèi)核同步,是一個基本而重要的知識,本章介紹了三種主要的實現(xiàn)方式。至于內(nèi)核是否可以調(diào)用Win32函數(shù),讀一讀本章開篇的話,你就有答案了。
第9章 內(nèi)核同步\t
9.1 關于內(nèi)核同步\t
9.2 內(nèi)核事件同步\t
9.2.1 原理\t
9.2.2 用戶程序\t
9.2.3 內(nèi)核實現(xiàn)\t
9.3 IRP同步\t
9.3.1 用戶程序\t
9.3.2 內(nèi)核實現(xiàn)\t
9.4 WMI同步\t
9.5 數(shù)據(jù)緩沖區(qū)同步\t
9.6 反向調(diào)用\t
9.7 小結\t
微軟最新的音視頻編程框架即AVStream框架,不管從什么方面來說,音視頻編程都是一個很小眾的領域。AVStream框架極其復雜,個人看法是掌握的難度超過了WDF。本章介紹了AVStream框架的各種基本知識點,并以實例講解一個內(nèi)核音頻過濾器在系統(tǒng)中是如何工作的。
第10章 音頻驅(qū)動開發(fā)\t
10.1 簡介\t
10.1.1 音頻模塊架構\t
10.1.2 系統(tǒng)中的音頻設備\t
10.2 AVStream對象\t
10.2.1 設備對象\t
10.2.2 Filter工廠和Filter對象\t
10.2.3 Pin工廠和Pin對象\t
10.2.4 Node對象與Connection結構體\t
10.3 AVStream描述符\t
10.3.1 描述符簡介\t
10.3.2 描述符示例\t
10.3.3 分發(fā)函數(shù)表\t
10.3.4 自控表\t
10.3.5 自控表示例\t
10.4 代碼講解\t
10.4.1 入口函數(shù)\t
10.4.2 設備分發(fā)函數(shù)\t
10.4.3 Filter與Pin分發(fā)函數(shù)\t
10.4.4 創(chuàng)建和刪除\t
10.4.5 數(shù)據(jù)處理\t
10.4.6 數(shù)據(jù)格式\t
10.5 自控表函數(shù)\t
10.5.1 事件函數(shù)\t
10.5.2 屬性函數(shù)\t
10.5.3 方法函數(shù)\t
10.5.4 用戶接口\t
10.6 硬件操作\t
10.6.1 數(shù)據(jù)DMA\t
10.6.2 AVStream中的DMA實現(xiàn)\t
10.6.3 談談ISR\t
10.7 安裝與測試\t
10.7.1 安裝\t
10.7.2 測試工具\t
10.8 小結\t
ASIO音頻驅(qū)動具有兩個非常亮眼的優(yōu)點:低延遲、多通道。低延遲能夠達到幾毫秒,使得最靈敏的耳朵也難也察覺;多通道則讓通常的雙聲道、6.1聲道等一齊歇菜,而可以很輕松地讓多達十幾、幾十個聲道同時工作,在進行高級音頻編輯時,這非常重要。
第11章 ASIO虛擬聲卡\t
11.1 引言\t
11.2 關于ASIO\t
11.3 ASIO用戶驅(qū)動\t
11.3.1 COM接口\t
11.3.2 安裝與卸載\t
11.3.3 IASIO接口\t
11.3.4 技術核心\t
11.3.5 計算延遲\t
11.4 內(nèi)核驅(qū)動實現(xiàn)\t
11.4.1 同步\t
11.4.2 原理\t
11.4.3 實現(xiàn)\t
11.5 ASIO音頻軟件\t
11.6 小結\t
從本章開始的三章內(nèi)容,講的都是“驅(qū)動安裝”這個話題。在本章中,介紹了系統(tǒng)中和驅(qū)動安裝有關的各種系統(tǒng)模塊。讀者通過閱讀本章后,至少能夠掌握這兩個基本知識:系統(tǒng)如何識別一個舊設備,并為它加載合適的驅(qū)動文件;系統(tǒng)如何發(fā)現(xiàn)一個新設備,并完成驅(qū)動安裝。
第12章 設備驅(qū)動安裝入門\t
12.1 基礎知識預介\t
12.1.1 設備類型\t
12.1.2 設備實例ID\t
12.1.3 驅(qū)動加載和安裝\t
12.2 安裝模塊\t
12.2.1 內(nèi)核PNP管理器\t
12.2.2 用戶PNP管理器\t
12.2.3 安裝接口函數(shù)(Setup API)\t
12.2.4 配置管理器接口(CfgMgr API)\t
12.2.5 類安裝器(Class Installers)\t
12.2.6 類協(xié)安裝器(Class Co-Installers)\t
12.2.7 設備協(xié)安裝器(Device Co-Installers)\t
12.2.8 驅(qū)動包(Driver Package)\t
12.2.9 驅(qū)動倉庫(Driver Store)\t
12.2.10 設備管理器(Device Manager)\t
12.2.11 安裝程序\t
12.2.12 新設備向?qū)t
12.2.13 添加硬件向?qū)t
12.2.14 驅(qū)動安裝器(Driver Installer)\t
12.3 重要問題\t
12.3.1 尋找和選擇\t
12.3.2 32位與64位系統(tǒng)兼容\t
12.3.3 系統(tǒng)重啟\t
12.4 安裝模式\t
12.4.1 示例1:客戶端模式\t
12.4.2 示例2:服務器模式\t
12.5 安裝器編程\t
12.5.1 DIF碼\t
12.5.2 處理流程\t
12.5.3 工程示例\t
12.5.4 注冊\t
12.6 小結\t
INF文件即驅(qū)動程序的“安裝文件”,它包含了各種與驅(qū)動安裝有關的指令信息。通過INF文件,系統(tǒng)知道如何處理驅(qū)動包中的各個文件,并在系統(tǒng)注冊表中做出準確記錄。本章主要從指令和域,這兩個方面進行講解。
第13章 深入解析INF文件\t
13.1 概述\t
13.1.1 域\t
13.1.2 指令\t
13.1.3 多系統(tǒng)\t
13.2 注冊表指令\t
13.2.1 縮寫根鍵\t
13.2.2 軟件鍵\t
13.2.3 硬件鍵\t
13.2.4 AddReg\t
13.2.5 DelReg\t
13.2.6 BitReg\t
13.3 文件操作指令\t
13.3.1 CopyFiles\t
13.3.2 DelFiles\t
13.3.3 RenFiles\t
13.4 服務指令\t
13.4.1 AddService\t
13.4.2 DelService\t
13.5 基本域\t
13.5.1 版本域\t
13.5.2 文件域\t
13.5.3 默認安裝域\t
13.5.4 控制域\t
13.5.5 字符串域\t
13.6 設備類安裝域\t
13.6.1 主域\t
13.6.2 服務子域\t
13.7 接口類安裝域\t
13.8 廠商/產(chǎn)品域\t
13.8.1 廠商域\t
13.8.2 產(chǎn)品域\t
13.9 設備安裝域\t
13.9.1 硬件子域\t
13.9.2 協(xié)安裝器子域\t
13.9.3 接口子域\t
13.9.4 廠商默認配置子域\t
13.9.5 邏輯優(yōu)先配置子域\t
13.10 ChkInf介紹\t
13.11 小結\t
驅(qū)動安裝程序讓你的驅(qū)動軟件顯得更加專業(yè),所以,放棄手動安裝驅(qū)動的做法吧,你的驅(qū)動將顯得更靚。本章的示例軟件MyDrvInst,可以作為讀者設計更漂亮的安裝軟件的開始。
第14章 設計驅(qū)動安裝程序\t
14.1 驅(qū)動包\t
14.1.1 安裝方式\t
14.1.2 安裝驅(qū)動包\t
14.1.3 卸載驅(qū)動包\t
14.2 驅(qū)動更新\t
14.2.1 設備已連接\t
14.2.2 設備未連接\t
14.2.3 枚舉系統(tǒng)設備\t
14.3 分析INF文件\t
14.3.1 函數(shù)介紹\t
14.3.2 打印設備ID\t
14.4 MyDrvInst介紹\t
14.5 制作軟件安裝包\t
14.5.1 視圖介紹\t
14.5.2 我們的工程\t
14.5.3 編譯執(zhí)行\(zhòng)t
14.6 小結\t
附錄A CY001 USB開發(fā)板\t
附錄B VisualKD + VMWare實現(xiàn)單機內(nèi)核調(diào)試\t

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號