編譯環境用xp下vc6+ddk
新建乙個資料夾當作工程目錄,路徑是e:/lingdux/
從別的工程copy過來兩個檔案,
乙個是makefile,它用來指定檔案之間的依賴關係,確定專案中哪些檔案時需要重新編譯的,那些事已經編譯過的。裡面的內容不用改,直接預設就ok
另乙個是source,它用來儲存一些配置資訊,內容如下:
targetname=lingdux 這句用來指定目標程式存放的路徑
targettype=driver 這句是指定目標型別,driver為驅動程式
targetpath=driver 這句指定編譯時的中間檔案存放的路徑
sources=lingdux.c 這句指定了原始檔
在工程目錄想建立乙個空檔案命名lingdux.c,雙擊用vc6開啟,開始寫**~!
遵循c語言,只有乙個入口函式driverentry,有兩個引數
ntstatus driver entry(in pdriver_object driverobject, 第乙個是pdriver_object型別 系統程序呼叫的驅動物件
in ounicode_string registrypath) 第二個是in ounicode_string型別 字串型別,註冊路徑
返回值型別為ntstatus,系統狀態。
輸出函式為dbgprint(),包含的標頭檔案是ntddk.h
編寫完成後,發現這個驅動程式沒有退出功能,系統載入後不能停止,重新啟動後才能再次載入,不利於除錯,下面就新增乙個退出功能。
driverobject->driverunload=unload 為驅動物件註冊乙個解除安裝例程指定乙個空函式
在驅動停止的時候被呼叫,用於刪除一些裝置物件,符號鏈結,釋放驅動載入的資源。
void unload(in pdriver_object driverobject)
完整**如下:
#include
void unload(in pdriver_object driverobject)
ntstatus driverentry(in pdriver_object driverobject,in punicode_string registrypath)
儲存以上**,然後開啟ddk,路徑選擇工程目錄,執行build命令,
編譯出來的驅動檔案為e:/lingdux/driver/i386/lingdux.sys
用coderui的驅動載入工具載入
用debug viwe成功截獲到輸出hello world!
Flask學習筆記(四)從helloworld開始
所有flask程式必須有乙個程式例項。flask呼叫檢視函式後,會將檢視函式的返回值作為響應的內容,返回給客戶端。一般情況下,響應內容主要是字串和狀態碼。當客戶端想要獲取資源時,一般會通過瀏覽器發起http請求。此時,web伺服器使用wsgi web server gateway inte ce 協...
Linux驅動程式入門 Hello World
2008 7 16 22 06 17 收藏 列印 投 票 74 中小 linux驅動程式入門 hello world ohy 20080716 1 引言 記得在學習vc 和c語言的時候,一開始都會以乙個hello world的例子作為演示,將學者逐漸引入殿堂,這個幾乎成了計算機程式語言學習必經的乙個...
Linux驅動程式入門 Hello World
1 引言 記得在學習vc 和c語言的時候,一開始都會以乙個hello world的例子作為演示,將學者逐漸引入殿堂,這個幾乎成了計算機程式語言學習必經的乙個入門之路。當然,在學習linux程式設計的時候也是這樣,下面的例子應該是再熟悉不過了 首先用vi編寫乙個c程式 vi hello.c inclu...