windows driver 的入門方法

最近因爲公司的要求,需要看windows 下面的driver,下面就我在這幾天看的幾點體會:

開發windows 驅動首先需要兩個開發工具:visual studio 、WDK

visual studio 是micro soft 提供的IDE 開發工具,WDK 主要包含一些我們開發所用的庫文件

驅動的入口函數:DriverEntry

NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,
            IN PUNICODE_STRING RegistryPath)
{
        … … … …

        return STATUS_SUCCESS;


}


一:操作系統是如何安裝我們的驅動程序的呢??

1、我們用2012 的visuall新建一個WDF 的kenel 模式的driver 的時候,我們會自動生成一個.inf 文件,我們安裝驅動的時候,就是通過這個文件來指導OS進行安裝的,一般安裝在了(windows\system32\drivers子目錄下)目錄下面

2、這個.inf 裏面包括哪些內容呢??

        設備類型、設備型號、廠商信息、程序版本號…。
        對操作系統版本和CPU類型的要求…
        源文件(.sys文件)的文件名和所在位置
        安裝目標子目錄
        在註冊表中添加哪些內容
        硬件配置信息
         安全配置信息

包括以上等的一些信息

二:設備驅動的加載過程:

OS查找到該設備的硬件鍵之後,再通過硬件鍵的Service子鍵查到該設備的服務鍵(HKLM\SYSTEM \CurrentControlSet\Services的某個子目錄)通過服務鍵的ImagePath子鍵的值就可以找到該設備所對應的驅動程序。OS掃描內存,看該驅動是否已被加載,如果沒有,則立即加載該驅動,並調用該驅動的“DiverEnry”回調函數。加載完畢之後,OS調用該驅動的“AddDevice”回調函數通知驅動程序有新的設備到來。

關於鍵值的尋找我們直接進入windows 的cmd 窗口下,輸入regedit 就是打來註冊表就可以找到了,不知道的可以自己去嘗試下

三:學習windows driver 的資料

1、學習windows driver 要多多光顧msdn 網站,上面提供了很多的最新的microsoft 動態:http://msdn.microsoft.com/en-us/library/ff557573%28vs.85%29.aspx

2、還有就是要多看microsoft 提供的wdlk document 的這個文檔,這裏面提供了很多的windows driver 的函數查詢方法,通過這個手冊可以找到windows driver 裏面調用的函數的意思,這個很重要,下載的地址是:http://msdn.microsoft.com/zh-cn/library/gg487458.aspx,這個裏面也提供了很多的windows上的driver開關的前人開發的文檔,感覺還是挺不錯的

3、要使用visual studio 進行經常的操作,多看,就慢慢熟悉了


我也只是看了幾天,知道的也不多,希望對剛學windows driver 開發的人有一點給的幫助




發佈了18 篇原創文章 · 獲贊 11 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章