驅動版的「Hello World」

2021-05-17 23:37:08 字數 692 閱讀 5841

我們學習程式設計,都是從「hello world」開始的,驅動程式也不例外,今天我就寫乙個驅動版的「hello world」來熱熱身,目的希望大家能對驅動程式的基本框架有所了解。

驅動程式分為2類,乙個是kernel模式驅動,另乙個是windows模式驅動,2種模式本質是相同,但細節不同,本文介紹的是核心模式驅動和驅動程式的安裝、使用。

驅動程式同普通的exe,dll一樣,都屬於pe檔案,而且都有乙個入口函式。但exe中,入口函式是main()/winmain()和unicode的wmain()/wwinmain(),dll的入口函式

則可有可無,它是dllmain()。驅動程式也有入口函式,而且是必須的,它是driverentry(),再次提示,它是必須的,因為i/o管理器會首先呼叫驅動程式的driverentry() ,它的作用就像dllmain()--完成一些初始化工作。

driverentry()一共有2個引數:

(1)pdriver_object driverobject,指向驅動程式物件的指標,我們操作驅動程式,

全靠它,它是由i/o管理器傳遞進來的;

(2)punicode_string registrypath,驅動程式的服務主鍵,這個引數的使用並不多,但要注意,在driverentry()返回後,它可能

會消失,所以如果需要使用,記住先要儲存下來。

dahubaobao.eviloctal.org

helloworld驅動加強版

helloworld 加強版 執行環境 tq2440開發板,核心版本2.6.30.4 開發環境 window下的source insight以及pc機上的紅帽企版5虛擬機器 實驗環境前提條件 擁有乙個製作好的nfs檔案系統 hellop.c include include includestatic...

helloworld驅動程式

mkdir opt embedsky modules cd modules mkdir hello cd hello vim hello.c hello 驅動 如下 hello.c qudong duopin 2012.4.22 include include module license gpl ...

驅動學習筆記 Hello World !

編譯環境用xp下vc6 ddk 新建乙個資料夾當作工程目錄,路徑是e lingdux 從別的工程copy過來兩個檔案,乙個是makefile,它用來指定檔案之間的依賴關係,確定專案中哪些檔案時需要重新編譯的,那些事已經編譯過的。裡面的內容不用改,直接預設就ok 另乙個是source,它用來儲存一些配...