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

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

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

定 價:¥69.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

向內(nèi)核世界說一聲:hello,我來了。如果你是一個初學(xué)者,并對這個世界充滿好奇心,請從這一章開始,我們一起打招呼~
第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)境進(jìn)行驅(qū)動開發(fā)\t
1.2.2 使用VMware虛擬機\t
1.2.3 目標(biāo)機設(shè)置\t
1.2.4 Virtual PC虛擬機\t
1.3 小結(jié)\t
如何在規(guī)范的商業(yè)環(huán)境中,開發(fā)成功而有效的驅(qū)動軟件?驅(qū)網(wǎng)站長馬勇(ZnSoft)將向你娓娓道來。你會學(xué)到這些內(nèi)容:建立一個簡單而有效的開發(fā)、調(diào)試環(huán)境;64位環(huán)境下的內(nèi)核編程技巧;如何發(fā)布你的驅(qū)動軟件。
第2章 商業(yè)驅(qū)動開發(fā)技術(shù)\t
2.1 建立開發(fā)調(diào)試環(huán)境\t
2.1.1 SVN環(huán)境\t
2.1.2 創(chuàng)建工程,導(dǎo)入SVN\t
2.1.3 建立符號服務(wù)器\t
2.1.4 用符號調(diào)試\t
2.2 64位驅(qū)動開發(fā)技術(shù)\t
2.2.1 64位驅(qū)動編寫技術(shù)\t
2.2.2 32位應(yīng)用程序與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 小結(jié)\t
WDF是目前最新的驅(qū)動編程框架。當(dāng)很多內(nèi)核程序員還緊抱WDM的巨大佛腳時,千萬要記住,WDF已是大勢所趨。本章介紹了WDF最重要的幾個概念,并進(jìn)行了一定程度的深度挖掘。對于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 父子關(guān)系\t
3.4.7 對象同步\t
3.5 驅(qū)動對象和設(shè)備對象\t
3.5.1 驅(qū)動對象\t
3.5.2 驅(qū)動入口DriverEntry\t
3.5.3 設(shè)備對象\t
3.5.4 創(chuàng)建設(shè)備對象\t
3.5.5 設(shè)備棧\t
3.6 IO模型\t
3.6.1 IO目標(biāo)對象\t
3.6.2 IO目標(biāo)對象的細(xì)節(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 更詳細(xì)的處理流程\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 小結(jié)\t
使用WDF框架開發(fā)USB驅(qū)動,方便且簡單。本章首先總體上從硬件和軟件兩個方面介紹USB相關(guān)知識點,包括設(shè)備的電氣特性、總線結(jié)構(gòu)、USB驅(qū)動類型以及類驅(qū)動。編程方面,從USB設(shè)備初始化、數(shù)據(jù)操作以及設(shè)備控制等幾個方面來講解,透徹并且翔實。
第4章 WDF USB設(shè)備驅(qū)動開發(fā)\t
4.1 USB設(shè)備硬件結(jié)構(gòu)\t
4.1.1 主從結(jié)構(gòu)\t
4.1.2 硬件拓?fù)鋅t
4.1.3 USB中斷\t
4.2 USB軟件結(jié)構(gòu)\t
4.2.1 總線驅(qū)動\t
4.2.2 系統(tǒng)類驅(qū)動\t
4.2.3 功能驅(qū)動\t
4.2.4 父驅(qū)動與混合設(shè)備\t
4.2.5 過濾驅(qū)動\t
4.2.6 USB驅(qū)動棧、設(shè)備棧\t
4.3 內(nèi)核開發(fā)\t
4.3.1 設(shè)備驅(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è)備初始化函數(shù)\t
4.3.9 創(chuàng)建設(shè)備對象\t
4.3.10 設(shè)備命名、符號鏈接\t
4.3.11 啟動設(shè)備\t
4.3.12 創(chuàng)建隊列\(zhòng)t
4.3.13 停止設(shè)備/反初始化\t
4.4 數(shù)據(jù)I/O操作\t
4.4.1 USB控制命令\t
4.4.2 構(gòu)造并發(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 設(shè)備控制\t
4.5.1 關(guān)于I/O Target對象\t
4.5.2 獲取USB版本\t
4.5.3 管道重置\t
4.5.4 設(shè)備重置\t
4.5.5 管道中止與終止\t
4.6 用戶程序\t
4.6.1 內(nèi)核讀/寫\t
4.6.2 控制命令\t
4.7 小結(jié)\t
1394俗稱火線。大伙平時最多接觸它的地方大概是內(nèi)核調(diào)試時,借助1394卡進(jìn)行雙機互聯(lián)。本章首先從硬件方面介紹了1394的知識,它的總線結(jié)構(gòu)很特別,極具可擴性,能非常方便地在各種類型的1394設(shè)備之間建立數(shù)據(jù)鏈路。內(nèi)核編程方面,本章重點講解了數(shù)據(jù)通信相關(guān)知識,分為異步通信和同步通信兩種方式,頗為復(fù)雜,相對難于掌握,但套路是現(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 總線拓?fù)鋅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 設(shè)置重置回調(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 設(shè)備配置\t
5.7.2 獲取控制器信息\t
5.7.3 速度信息\t
5.7.4 廠商自定義命令\t
5.8 安裝與測試\t
5.8.1 1394虛擬設(shè)備\t
5.8.2 創(chuàng)建虛擬設(shè)備\t
5.8.3 示例代碼\t
5.8.4 安裝與測試\t
5.9 小結(jié)\t
內(nèi)核天生適合于C語言編程,但越來越多的內(nèi)核項目,規(guī)模達(dá)到10數(shù)萬的規(guī)模。在這種情況下,人們不由地會將目光投向優(yōu)雅的C++語言??傮w上說,C和C++是至親好友,內(nèi)核中使用C++本不應(yīng)有什么大問題,但有幾個暗礁潛伏已久,不小心的程序員,你可千萬不要觸礁。
第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 小結(jié)\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 小結(jié)\t
SoftIce漸行漸遠(yuǎn)之后,Windbg成為內(nèi)核調(diào)試的第一利器。使用Windbg的最大難點是命令繁多,參數(shù)復(fù)雜。本章以總結(jié)歸納的形式,介紹了作者在工作中經(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 基本設(shè)置\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 進(jìn)程與線程\t
8.3.1 進(jìn)程命令\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 小結(jié)\t
相信大多數(shù)人在學(xué)習(xí)內(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 關(guān)于內(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 小結(jié)\t
微軟最新的音視頻編程框架即AVStream框架,不管從什么方面來說,音視頻編程都是一個很小眾的領(lǐng)域。AVStream框架極其復(fù)雜,個人看法是掌握的難度超過了WDF。本章介紹了AVStream框架的各種基本知識點,并以實例講解一個內(nèi)核音頻過濾器在系統(tǒng)中是如何工作的。
第10章 音頻驅(qū)動開發(fā)\t
10.1 簡介\t
10.1.1 音頻模塊架構(gòu)\t
10.1.2 系統(tǒng)中的音頻設(shè)備\t
10.2 AVStream對象\t
10.2.1 設(shè)備對象\t
10.2.2 Filter工廠和Filter對象\t
10.2.3 Pin工廠和Pin對象\t
10.2.4 Node對象與Connection結(jié)構(gòu)體\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 設(shè)備分發(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 談?wù)処SR\t
10.7 安裝與測試\t
10.7.1 安裝\t
10.7.2 測試工具\t
10.8 小結(jié)\t
ASIO音頻驅(qū)動具有兩個非常亮眼的優(yōu)點:低延遲、多通道。低延遲能夠達(dá)到幾毫秒,使得最靈敏的耳朵也難也察覺;多通道則讓通常的雙聲道、6.1聲道等一齊歇菜,而可以很輕松地讓多達(dá)十幾、幾十個聲道同時工作,在進(jìn)行高級音頻編輯時,這非常重要。
第11章 ASIO虛擬聲卡\t
11.1 引言\t
11.2 關(guān)于ASIO\t
11.3 ASIO用戶驅(qū)動\t
11.3.1 COM接口\t
11.3.2 安裝與卸載\t
11.3.3 IASIO接口\t
11.3.4 技術(shù)核心\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 小結(jié)\t
從本章開始的三章內(nèi)容,講的都是“驅(qū)動安裝”這個話題。在本章中,介紹了系統(tǒng)中和驅(qū)動安裝有關(guān)的各種系統(tǒng)模塊。讀者通過閱讀本章后,至少能夠掌握這兩個基本知識:系統(tǒng)如何識別一個舊設(shè)備,并為它加載合適的驅(qū)動文件;系統(tǒng)如何發(fā)現(xiàn)一個新設(shè)備,并完成驅(qū)動安裝。
第12章 設(shè)備驅(qū)動安裝入門\t
12.1 基礎(chǔ)知識預(yù)介\t
12.1.1 設(shè)備類型\t
12.1.2 設(shè)備實例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 設(shè)備協(xié)安裝器(Device Co-Installers)\t
12.2.8 驅(qū)動包(Driver Package)\t
12.2.9 驅(qū)動倉庫(Driver Store)\t
12.2.10 設(shè)備管理器(Device Manager)\t
12.2.11 安裝程序\t
12.2.12 新設(shè)備向?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:服務(wù)器模式\t
12.5 安裝器編程\t
12.5.1 DIF碼\t
12.5.2 處理流程\t
12.5.3 工程示例\t
12.5.4 注冊\t
12.6 小結(jié)\t
INF文件即驅(qū)動程序的“安裝文件”,它包含了各種與驅(qū)動安裝有關(guān)的指令信息。通過INF文件,系統(tǒng)知道如何處理驅(qū)動包中的各個文件,并在系統(tǒng)注冊表中做出準(zhǔn)確記錄。本章主要從指令和域,這兩個方面進(jìn)行講解。
第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 服務(wù)指令\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 默認(rèn)安裝域\t
13.5.4 控制域\t
13.5.5 字符串域\t
13.6 設(shè)備類安裝域\t
13.6.1 主域\t
13.6.2 服務(wù)子域\t
13.7 接口類安裝域\t
13.8 廠商/產(chǎn)品域\t
13.8.1 廠商域\t
13.8.2 產(chǎn)品域\t
13.9 設(shè)備安裝域\t
13.9.1 硬件子域\t
13.9.2 協(xié)安裝器子域\t
13.9.3 接口子域\t
13.9.4 廠商默認(rèn)配置子域\t
13.9.5 邏輯優(yōu)先配置子域\t
13.10 ChkInf介紹\t
13.11 小結(jié)\t
驅(qū)動安裝程序讓你的驅(qū)動軟件顯得更加專業(yè),所以,放棄手動安裝驅(qū)動的做法吧,你的驅(qū)動將顯得更靚。本章的示例軟件MyDrvInst,可以作為讀者設(shè)計更漂亮的安裝軟件的開始。
第14章 設(shè)計驅(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 設(shè)備已連接\t
14.2.2 設(shè)備未連接\t
14.2.3 枚舉系統(tǒng)設(shè)備\t
14.3 分析INF文件\t
14.3.1 函數(shù)介紹\t
14.3.2 打印設(shè)備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 小結(jié)\t
附錄A CY001 USB開發(fā)板\t
附錄B VisualKD + VMWare實現(xiàn)單機內(nèi)核調(diào)試\t

本目錄推薦

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