出版時(shí)間:2011-3 出版社:電子工業(yè)出版社 作者:張佩,馬勇,董鑒源 頁(yè)數(shù):506
Tag標(biāo)簽:無(wú)
前言
國(guó)內(nèi)內(nèi)核開(kāi)發(fā)方面的書籍特別少,一個(gè)原因是很多技術(shù)牛人,沒(méi)有時(shí)間或機(jī)會(huì)把自己掌握的知識(shí)編輯成書。真的很遺憾。希望我砸出這塊磚頭后,后面會(huì)在書店里看到無(wú)數(shù)的翡翠之作?! ∠啾容^國(guó)外的程序員,國(guó)內(nèi)程序員在學(xué)習(xí)內(nèi)核驅(qū)動(dòng)開(kāi)發(fā)的時(shí)候,學(xué)習(xí)曲線特別長(zhǎng),主要原因是沒(méi)有趁手可用的資料。有一些初學(xué)者聯(lián)系我,倒出的苦水大多是:資料太少,技術(shù)太難,不知從何下手。我給出的建議多是希望他們努力學(xué)習(xí)WDK中的現(xiàn)成文檔,并推薦一些經(jīng)典的英文電子檔。但大多數(shù)初級(jí)學(xué)習(xí)者,并不滿足我這個(gè)答案——他們希望有中文資料。這時(shí)候,我會(huì)向他們推薦《深入解析Windows操作系統(tǒng)》或者《軟件調(diào)試》,有時(shí)候,我還會(huì)謹(jǐn)慎地向他們推薦《驅(qū)網(wǎng)核心技術(shù)》叢書?! 『芨吲d有機(jī)會(huì),寫成這樣一本書。本書的另外兩位作者是馬勇和董鑒源,他們分別寫了第1章和第2章。寫《竹林蹊徑——深入淺出Windows驅(qū)動(dòng)開(kāi)發(fā)》花了我整整八個(gè)月的時(shí)間,有半年左右,我把所有的時(shí)間都花在上面,不上班,不娛樂(lè)。這本書是我的勞苦之作?! ∥依脤懽鞯臋C(jī)會(huì),縱深滲透學(xué)習(xí)了不少知識(shí)。與其說(shuō)它是在展示個(gè)人才華,不如說(shuō)是做了一次自我進(jìn)修和測(cè)試。我做不到文采飛揚(yáng),能保證的是負(fù)責(zé)任的態(tài)度。此書在寫作過(guò)程中,增刪若干遍,完稿之后,請(qǐng)多位前輩老師審稿。我現(xiàn)在唯一期望的是書中的內(nèi)容,確實(shí)能夠?qū)ψx者起到幫助、參考的作用。 本書特色 《竹林蹊徑——深入淺出Windows驅(qū)動(dòng)開(kāi)發(fā)》這本書的一個(gè)最大特點(diǎn)是插圖和示例多,對(duì)涉及到的大部分知識(shí),能做到一定深度的挖掘。譚文跟我說(shuō),無(wú)法把自己的技術(shù)經(jīng)驗(yàn)完全寫出來(lái)。我當(dāng)然同意他這句話的正確性;但寫作的過(guò)程中,我仍然盡最大的可能,把技術(shù)和經(jīng)驗(yàn)文字化、圖形化,盡量做到由淺入深,脈絡(luò)分明——這是我個(gè)人的最高目標(biāo)?! ∑綍r(shí)給別人講某個(gè)知識(shí)點(diǎn)的時(shí)候,哪怕是最簡(jiǎn)單的,我喜歡講得360度面面俱到。說(shuō)了一層,愛(ài)說(shuō)下面還有一層。講了燒水之釜,還要介紹釜底之薪。有人不喜歡這樣,但我喜歡。如果以后還寫書,我仍會(huì)保持這一點(diǎn)?! ”緯饕獌?nèi)容 本書主要包含這幾個(gè)方面的內(nèi)容:WDF框架、驅(qū)動(dòng)測(cè)試、音視頻編程、驅(qū)動(dòng)安裝。這其中,最費(fèi)精神的是WDF框架相關(guān)章節(jié)?! DF是目前和將來(lái)驅(qū)動(dòng)開(kāi)發(fā)的大勢(shì)所趨。如果初學(xué)者因?yàn)橘Y料的關(guān)系,而緊握著WDM架構(gòu)的雙手的話,他一定要留神,不要冷落了旁邊正如日中天的WDF。搞技術(shù),特別是在Windows平臺(tái)上,不建議大伙具有懷舊情緒,跟著形勢(shì)走是必然的?! 杏兴恼聝?nèi)容介紹WDF。筆者如農(nóng)夫翻地一般,把WDF奇異表面下的具體實(shí)現(xiàn)做了一定的揭露。筆者饒有興趣地為大家分析WDF的對(duì)象模型,而從Wdf01000符號(hào)文件中揭露的內(nèi)部結(jié)構(gòu)體定義,能令很多人吃驚不小。 用WDF框架編寫驅(qū)動(dòng),要比WDM方便、簡(jiǎn)單一半以上。本書中介紹了使用WDF框架進(jìn)行USB和1394編程的內(nèi)容。由于USB的運(yùn)用之廣,使USB驅(qū)動(dòng)成為Windows內(nèi)核驅(qū)動(dòng)中的顯學(xué)。驅(qū)動(dòng)開(kāi)發(fā)網(wǎng)專門辟有“USB驅(qū)動(dòng)”版塊,并幾乎是最聚人氣的地方。為配合USB一章的寫作與學(xué)習(xí),筆者專門請(qǐng)朋友精心設(shè)計(jì)了一款USB驅(qū)動(dòng)學(xué)習(xí)開(kāi)發(fā)板。讀者在本書中的多處地方,都能看到它的玲瓏身影?! ◎?qū)動(dòng)測(cè)試方面包括兩章內(nèi)容,一章以WDF驅(qū)動(dòng)測(cè)試為中心進(jìn)行介紹,另一章介紹了Windbg調(diào)試命令。曾經(jīng)的王者SoftIce湮沒(méi)不聞后,Windbg成了唯一的內(nèi)核調(diào)試?yán)?,不可不掌握。 音視頻驅(qū)動(dòng)向來(lái)都比較小眾,做相關(guān)開(kāi)發(fā)的公司和個(gè)人都很少,資料也就更加少。本書有兩章內(nèi)容介紹音視頻開(kāi)發(fā),一章介紹AVStream小端口架構(gòu),一章介紹酷酷的ASIO音頻驅(qū)動(dòng),并以虛擬ASIO聲卡的創(chuàng)新技術(shù),為有興趣的讀者帶去福音?! ”緯詈笕拢榻B驅(qū)動(dòng)安裝有關(guān)的知識(shí)。一章介紹驅(qū)動(dòng)安裝的原理及系統(tǒng)模塊,一章介紹INF安裝文件的技術(shù)細(xì)節(jié),一章以示例介紹如何編寫驅(qū)動(dòng)安裝軟件??催^(guò)這些內(nèi)容后,試著為你的驅(qū)動(dòng)寫一個(gè)安裝軟件,會(huì)很酷?! ”緯x者對(duì)象 本書適合一般程序員 對(duì)WDF感興趣,準(zhǔn)備開(kāi)發(fā)VSB或1394設(shè)備驅(qū)動(dòng)者 下面要說(shuō)一些和技術(shù)無(wú)關(guān)的東西?! ≡诒緯鴮懽鬟^(guò)程中,有許多書外的記憶。比如,夏天我工作的時(shí)候,我女兒常常站在床頭,猛地一下用手撲打我的筆記本,電腦屏幕就傾了下去,一陣驚叫。 一次兩章隔夜剛新鮮寫好的內(nèi)容,保存在移動(dòng)硬盤中,第二日在另一臺(tái)電腦上開(kāi)機(jī),卻怎么都找不到了。翻遍整個(gè)系統(tǒng),用了N種數(shù)據(jù)、磁盤恢復(fù)工具,都無(wú)濟(jì)于事,蹤影全無(wú)。那種無(wú)助得想哭的感覺(jué),一直記在心間(這個(gè)問(wèn)題我后來(lái)把它再現(xiàn)了,可以認(rèn)定是Windows 7操作系統(tǒng)的BitLocker功能在休眠喚醒處理上的一個(gè)Bug)?! ≈轮x 感謝我的好朋友,譚文。是他推薦我主筆這本書的寫作。這套系列中的《天書夜讀——從匯編語(yǔ)言到Windows內(nèi)核編程》和《寒江獨(dú)釣——Windows內(nèi)核安全編程》出版后,大家都很忙。譚文很信任我,推薦我寫《竹林蹊徑——深入淺出Windows驅(qū)動(dòng)開(kāi)發(fā)》。譚文是我以前的同事,湖南人,故在網(wǎng)上號(hào)楚狂人,赫赫有名,散文隨筆一級(jí)好,技術(shù)文章有散文風(fēng)。謝謝李冰編輯和文字編輯葛娜女士,她們的信任和支持,使我有可能完成這本書。 感謝本書兩另外兩位作者,他們貢獻(xiàn)了第1章和第2章?! 「兄x潘愛(ài)民老師,他為本書寫了序,令我有蓬蓽生輝之感?! 「兄x張銀奎老師,張帆兄,他們也對(duì)本書給予了鼓勵(lì),并寫了推薦語(yǔ)?! ∥乙兄x所有照顧過(guò)我的親人們:謝謝我大阿姨,她現(xiàn)在只在天上看著我們。她以力排眾議的氣勢(shì),關(guān)心照顧過(guò)我。謝謝紅兵表哥,他正好大我一輪,學(xué)習(xí)成績(jī)冠于全鎮(zhèn)。當(dāng)初我老愛(ài)從他那里偷書,那些書正是我童年和少年時(shí)代僅有的課外書。謝謝小姨父,父執(zhí)輩中他是唯一給我嚴(yán)肅、客觀教育的人。感謝我舅舅,他給我很多幫助。以前,我總是把去上海說(shuō)成“去我舅舅那”?! ≈x謝我所有的親人們?! 「兄x雙方父母,感謝他們所有的辛勤付出?! ∽詈螅兄x我的妻子,近兩年以來(lái),她離職在家做專職母親,好像把十幾年的事情放在一兩年里做了,歲月催人老,我把她累壞了?! ∽詈笫且皇孜逖园司?,會(huì)意書名曰:《竹林蹊徑》 蔭蔭翠竹百畝林, 結(jié)廬恒愛(ài)此中景。 尋常偶遇方外客, 殷勤指點(diǎn)通幽徑?! 埮?/pre>內(nèi)容概要
本書是作者根據(jù)多年的工作學(xué)習(xí)經(jīng)驗(yàn),總結(jié)的第一手驅(qū)動(dòng)開(kāi)發(fā)資料。本書更多的是經(jīng)驗(yàn)之談,一些實(shí)踐中的小發(fā)現(xiàn)小意外,頗為書中內(nèi)容添彩。 本書的特色之一,是對(duì)WDF框架做了較多的切入。本書第一個(gè)主要內(nèi)容是(第3~7章)圍繞WDF而展開(kāi)討論,側(cè)重點(diǎn)各有不同。第3章以框架為討論的中心;第4、5兩章以WDF框架開(kāi)發(fā)USB和1394驅(qū)動(dòng);第6章講述內(nèi)核C++編程,也以WDF框架為藍(lán)本;第7章講述WDF驅(qū)動(dòng)的測(cè)試和調(diào)試。 第二個(gè)主要內(nèi)容是關(guān)于音視頻驅(qū)動(dòng)開(kāi)發(fā)(第10~11章)。音視頻驅(qū)動(dòng)包括AVStream架構(gòu),本書做了較詳細(xì)的闡述。第10章講述使用AVStream小端口架構(gòu),第11章講述ASIO音頻驅(qū)動(dòng)開(kāi)發(fā)。第三個(gè)主要內(nèi)容是關(guān)于設(shè)備驅(qū)動(dòng)安裝(第12~14章)。第12章講系統(tǒng)安裝模塊,從總體角度闡述系統(tǒng)和設(shè)備驅(qū)動(dòng)如何配合完好地進(jìn)行工作;第13章講述INF安裝文件的細(xì)節(jié),包括各個(gè)域的作用,以及諸多安裝指令的使用。第14章講如何編寫驅(qū)動(dòng)安裝軟件。 剩余的一些章節(jié),分別是關(guān)于驅(qū)動(dòng)入門(第1、2章)、Windbg調(diào)試命令(第8章)、內(nèi)核同步(第9章)等內(nèi)容。 本書適合一般入門級(jí)內(nèi)核程序員,對(duì)WDF有興趣,準(zhǔn)備開(kāi)發(fā)USB或1394設(shè)備驅(qū)動(dòng)者,本書尤其有用。本書對(duì)于入行較久,經(jīng)驗(yàn)豐富的程序員,也具有一定的參考價(jià)值。作者簡(jiǎn)介
張佩,1982年出生于江中小島江蘇揚(yáng)中,工作后一直從事內(nèi)核驅(qū)動(dòng)開(kāi)發(fā)。初學(xué)頗難,至今仍顯躑躅,深憾未能窺出系統(tǒng)全貌,而吭吭努力不斷。學(xué)習(xí)過(guò)程中,得到朋友無(wú)私幫助頗多,有所心得后,亦樂(lè)于作文、評(píng)說(shuō),以傳播給更多的愛(ài)好者——此書由此而來(lái)。目前就職于AMD上海研發(fā)中心。
馬勇,網(wǎng)名znsoft,驅(qū)動(dòng)開(kāi)發(fā)網(wǎng)創(chuàng)始人。專注于文件系統(tǒng)驅(qū)動(dòng)研究,擅長(zhǎng)文檔透明加密相關(guān)技術(shù)及軟件架構(gòu)設(shè)計(jì)。從事驅(qū)動(dòng)開(kāi)發(fā)及研發(fā)管理工作十?dāng)?shù)年,目前就職于鎧信安全實(shí)驗(yàn)室。
董鑒源,C/C++、匯編程序員。1986年生于山東。大學(xué)畢業(yè)后從事各類系統(tǒng)軟件的開(kāi)發(fā)設(shè)計(jì)工作。目前在濟(jì)南從事Windows內(nèi)核方面的開(kāi)發(fā)工作。愛(ài)好讀書、文學(xué)、圍棋和武術(shù)等,對(duì)編寫操作系統(tǒng)尤為癡迷。承蒙不棄,有幸參與本書部分基礎(chǔ)章節(jié)的編寫。書籍目錄
第1章 Hello World驅(qū)動(dòng) 1.1 從Hello World開(kāi)始 1.2 虛擬環(huán)境 1.3 小結(jié) 第2章 商業(yè)驅(qū)動(dòng)開(kāi)發(fā)技術(shù) 2.1 建立開(kāi)發(fā)調(diào)試環(huán)境 2.2 64位驅(qū)動(dòng)開(kāi)發(fā)技術(shù) 2.3 驅(qū)動(dòng)程序的發(fā)布與測(cè)試 2.4 小結(jié) 第3章 WDF概述 3.1 主要特點(diǎn) 3.2 框架視圖 3.3 兼容性 3.4 對(duì)象模型 3.5 驅(qū)動(dòng)對(duì)象和設(shè)備對(duì)象 3.6 IO模型 3.7 PNP和電源模型 3.8 小結(jié) 第4章 WDF USB設(shè)備驅(qū)動(dòng)開(kāi)發(fā) 4.1 USB設(shè)備硬件結(jié)構(gòu) 4.2 USB軟件結(jié)構(gòu) 4.3 內(nèi)核開(kāi)發(fā) 4.4 數(shù)據(jù)I/O操作 4.5 設(shè)備控制 4.6 用戶程序 4.7 小結(jié) 第5章 WDF 1394驅(qū)動(dòng)開(kāi)發(fā) 5.1 1394一席談 5.2 發(fā)送請(qǐng)求 5.3 總線重置與計(jì)數(shù) 5.4 PNP操作 5.5 異步通信 5.6 等時(shí)通信 5.7 其他操作 5.8 安裝與測(cè)試 5.9 小結(jié) 第6章 內(nèi)核驅(qū)動(dòng)C++編程 6.1 驅(qū)動(dòng)中的類 6.2 類封裝的驅(qū)動(dòng)程序 6.3 多態(tài) 6.4 小結(jié) 第7章 WDF驅(qū)動(dòng)測(cè)試 7.1 WDF錯(cuò)誤 7.2 WDF擴(kuò)展調(diào)試命令 7.3 WDFTester 7.4 WDFVerifier 7.5 小結(jié) 第8章 調(diào)試命令詳解 8.1 概述 8.2 符號(hào)與源碼 8.3 進(jìn)程與線程 8.4 斷點(diǎn) 8.5 內(nèi)存命令 8.6 小結(jié) 第9章 內(nèi)核同步 第10章 音頻驅(qū)動(dòng)開(kāi)發(fā) 第11章 ASIO虛擬聲卡 第12章 設(shè)備驅(qū)動(dòng)安裝入門 第13章 深入解析INF文件 第14章 設(shè)計(jì)驅(qū)動(dòng)安裝程序 附錄A CY001 USB開(kāi)發(fā)板 附錄B VisualKD + VMWare實(shí)現(xiàn)單機(jī)內(nèi)核調(diào)試圖書封面
圖書標(biāo)簽Tags
無(wú)評(píng)論、評(píng)分、閱讀與下載
- 還沒(méi)讀過(guò)(79)
- 勉強(qiáng)可看(574)
- 一般般(980)
- 內(nèi)容豐富(4065)
- 強(qiáng)力推薦(333)