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