菜鳥之驅動開發1

來源:互聯網
上載者:User

 在之前一篇文章裡介紹驅動開發環境搭建過程,現在就開始寫驅動了。我是照著鬱金香的視頻教程學習驅動開發的。那驅動有些課時比較多餘,我在學習的過程當中會終合考慮合并一些課時。今天這一課是學著寫一個驅動的helloworld,並用WDK環境編譯成sys檔案。為了對驅動開發有一個更深入的瞭解,我在此並沒有用我之前搭建好的VS2010驅動便宜環境,而是直接用notepad++,它是一個記事本的擴充程式,支援文法高亮。

建立一個HelloDriverWorld.c,然後用notepad++編輯它,代碼如下:

#include <ntddk.h>VOID Driver_Unload(IN PDRIVER_OBJECT pDriverObject);int DriverEntry(PDRIVER_OBJECT pDriverObject,PUNICODE_STRING RegistryPath){    KdPrint(("Hello Driver World 驅動載入成功"));    KdPrint(("記得要用雙括弧,在debug版本中KdPrint會用DbgPrint代替,release版就不做任何事"));    DbgPrint("這是最簡單的驅動");    pDriverObject->DriverUnload = Driver_Unload;    return (1);}VOID Driver_Unload(IN PDRIVER_OBJECT pDriverObject){    KdPrint(("Hello Driver World 驅動卸載成功"));}

記住驅動的入口函數不是main,而是DriverEntry, 驅動開發時的列印輸出函數是KdPrint或DbgPrint, 它們兩區別是KdPrint在check版本才有輸出功能在Free版本不起作用,DbgPrint則在兩個版本下都要輸出,還在注意KdPrint是有兩對括弧!!!!還有check版本就相當於Debug版本,Free就相當於Release版本!!!Driver_Unload函數驅動卸載時會調用。

到現在為止,我們的驅動源碼已寫好了,如何便宜它呀? 便宜它需要兩個檔案,一個是makefile,另一個是Source檔案,這兩個檔案都是文字檔。

makefiel內容如下:

# 此檔案 一般情況下只有一行 並且不需要修改 不能有前置空格 !INCLUDE $(NTMAKEENV)\makefile.def

Source內容如下:

#下邊這行指定產生驅動名字HelloDriverWorld.sysTARGETNAME=HelloDriverWorld#下邊這行指定組建檔案的類型DRIVER指驅動TARGETTYPE=DRIVER#下邊這行指定產生驅動所在的路徑\SYS\HelloDriverWorld.sysTARGETPATH=SYS#下邊這行指定相關標頭檔所在目錄路徑INCLUDES=$(WDKPATH)\inc;\      $(WDKPATH)\inc\ddk;\##上邊必空一行D:\WINDDK\3790.1830 等價$(WDKPATH),在系統內容變數裡,如果沒有自己添加#下邊這行指定驅動原始碼*.cpp或者*.cSOURCES=HelloDriverWorld.c\ 

裡面內容都有注釋, 我就不多說了。

好了,編譯的準備工作都做好了,我們開始編譯。(注意,我們是開發NT的驅動,所以得選Windows XP的編譯環境)

開啟WDK的編譯環境,是一個命令列,然後進到我們放上面準備的三個檔案目錄,輸入命令build開始編譯。

如果是已經編譯過,重新編譯命令是:build -c

這樣在同目尋下會成生一個sys目錄,一路點進去,你會發現一個HelloDriverWorld.sys檔案,它就是我們的驅動檔案。

把它拷到我們的VMware xp系統裡,用DriverMonitor這個工具就可以載入它,這時候用DbgView就可以看到我們的列印資訊。

我把需要用到的驅動工具上傳到svn上,大家可以直接下載。

 

源碼下載:http://code.google.com/p/windows-driver-sky/source/browse/#svn%2Ftrunk%2FHelloDriverWorld

快動手試一試吧!!!!光看不寫是不行的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.