溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Windows驅(qū)動程序開發(fā)前期準(zhǔn)備

發(fā)布時(shí)間:2020-09-15 20:07:44 來源:網(wǎng)絡(luò) 閱讀:197 作者:Lee_1985 欄目:編程語言

要開發(fā)一個(gè)windows驅(qū)動程序,需要先掌握C語言相關(guān)知識,并理解一些操作系統(tǒng)知識,然后搭建windows driver開發(fā)環(huán)境,以及準(zhǔn)備一些必要的工具。

驅(qū)動程序與普通應(yīng)用程序的區(qū)別

我們知道,windows系統(tǒng)程序分為四個(gè)運(yùn)行級別:R0,R1,R2,R3,其中,R3運(yùn)行應(yīng)用程序,權(quán)限最低;R0運(yùn)行內(nèi)核代碼,管理硬件設(shè)備及運(yùn)行驅(qū)動程序,權(quán)限最高,也就是說,一旦我們的驅(qū)動代碼被OS內(nèi)核加載,那么我們的驅(qū)動程序就具備了最高權(quán)限,這是一件很開心的事情,也是一件很可怕的事情,開心在于我們可以實(shí)現(xiàn)更高級的功能,可怕的是,一旦產(chǎn)生錯(cuò)誤,系統(tǒng)就會藍(lán)屏。R1,R2兩個(gè)級別被Windows系統(tǒng)棄用,我們不必理會。

NT、WDM、WDF的區(qū)別

對于一個(gè)驅(qū)動程序開發(fā)新手,包括我自己,其實(shí)很糾結(jié)。首先我們分不清三者之間的關(guān)系和區(qū)別,其次,不知道到底該學(xué)哪個(gè)。其實(shí)三者并無本質(zhì)區(qū)別,學(xué)哪個(gè)都行,當(dāng)你遇到問題,需要解決問題的時(shí)候,就自然掌握和理解了。
NT:沒有電源管理和即插即用到處模塊
WDM:有電源管理和即插即用,可實(shí)現(xiàn)inf文件安裝
WDF:WDF框架是為了減少開發(fā)者因?yàn)樽陨硭降南拗贫霈F(xiàn)的不必要藍(lán)屏錯(cuò)誤,WDF框架將操作準(zhǔn)化,相當(dāng)于把簡答題變成了填空題,降低了出錯(cuò)概率。

常用工具

Visual Studio 20xx:開發(fā)工具
Windows SDK:開發(fā)庫
WDK:驅(qū)動開發(fā)庫
DebugViewer:調(diào)試內(nèi)核,查看內(nèi)核打印輸出
DriverMonitor:驅(qū)動加載工具,省去了手動安裝過程,非常方便
PcHunter:windows信息查看軟件,比OS自帶的任務(wù)管理器顯示內(nèi)容更多
DeviceTree:查看設(shè)備列表
WinObj:windows對象查看
IDA Pro:反編譯工具(暫時(shí)用不到)
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI