国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
用VC編譯驅(qū)動程序
1.【前言】

最近有很多人問我怎么樣在VC下編譯驅(qū)動程序,我嫌一個人一個人的解釋起來太麻煩,所以把有關(guān)的知識整理成一篇文章。

需要特別說明的是,這不是一篇教你怎樣寫驅(qū)動的文章,要學(xué)習(xí)驅(qū)動開發(fā),你應(yīng)該去看ArtBaker的書。


2.【索引】

1.前言
2.索引
3.編寫批處理文件build.bat
4.創(chuàng)建makefile工程
5.測試
6.常見問題


3.【編寫批處理文件build.bat】

VC開發(fā)環(huán)境下并沒有驅(qū)動程序的編譯器。編譯驅(qū)動程序的“正規(guī)”方法是使用DDK開發(fā)包中的編譯工具(它們都是基于命令行方式的)。但是VC中有一種makefile的工程,這種工程在build的時候直接根據(jù)命令行命令來編譯和創(chuàng)建程序,而且命令行的輸出信息會顯示在VC的信息框里。利用這個特性,只需要把編譯驅(qū)動程序的一系列命令做成一個批處理文件,然后讓makefile工程執(zhí)行這個批處理文件就行了。

下面我們來看看怎樣寫這個批處理文件:

#----------從這里開始copy----------------------------------------------

if"%1"==""gotoInvalidParameter

ifnotexist%1\bin\setenv.batgotoSetenvNotFound

call%1\bin\setenv.bat%1%2
%3
cd%4
build.exe-c
gotoexit

:InvalidParameter
echoInvalidParameter.
gotoexit

:SetenvNotFound
echoCan'tfoundSetenv.bat.
gotoexit

:exit

#---------到這里copy截止--------------------------------------------

把上面的內(nèi)容copy下來,paste到一個新建文件中并保存為build.bat(當(dāng)然,你也可以使用任何你喜歡的名字)。

我想并不是每個人都用過批處理文件,所以在這里我對這個批處理文件羅嗦兩句。這個批處理文件帶有4個參數(shù)%1,%2,%3和%4。%1代表DDK的安裝路徑。通常DDK在安裝后就會自動創(chuàng)建一個%DDKROOT%環(huán)境變量,這個變量就代表了DDK的安裝路徑。%2表示編譯模式,調(diào)試模式為checked,發(fā)行模式為free。%3是源代碼文件所在的驅(qū)動器名,例如C:,%4是源代碼文件所在的完整路徑,例如C:\MyDriver。
這個批處理文件首先檢查參數(shù)%1是否為空,若不為空則檢查%1\bin\setenv.bat文件是否存在,如果存在則執(zhí)行setenv.bat來設(shè)置環(huán)境和編譯模式。最后切換到源代碼所在的目錄并執(zhí)行build.exe來編譯和創(chuàng)建程序。

希望上面的解釋能讓你滿意。如果我把你給說暈了,或者如果你壓根不想了解這些批處理的細(xì)節(jié),沒關(guān)系,請繼續(xù)往下看。


4.【創(chuàng)建makefile工程】

不要覺得我膚淺!這一節(jié)主要是為那些沒有在VC上編寫過makefile工程的人寫的。

(1)運行VC,新建一個makefile工程

(2)在Debug的CommandLine欄輸入build.bat%DDKROOT%Checkede:e:\MyDriver,
注意,你需要根據(jù)工程保存的位置來修改后面兩個參數(shù)。

(3)在Release的CommandLine欄輸入build.bat%DDKROOT%freee:e:\MyDriver。

(4)完成工程創(chuàng)建,并把我們在上面創(chuàng)建的那個build.bat文件放到工程目錄下。


5.【測試】

現(xiàn)在可以測試上面的設(shè)置是否成功了,下面是我寫的一個驅(qū)動版的“helloworld”程序:

//---------------------------------------------
//Function:DriverEntry
//
//Description:
//一個驅(qū)動版的helloworld,它做不了什么實際的事情
//
//Arguments:
//pDriverObject-PassedfromI/OManager
//pRegistryPath-UNICODE_STRINGpointerto
//registryinfo(servicekey)
//forthisdriver
//
//Returnvalue:
//NTSTATUSalways
//----------------------------------------------

#include

NTSTATUS
DriverEntry(
INPDRIVER_OBJECTpDriverObject,
INPUNICODE_STRINGpRegistryPath
)
{
KdPrint((“Helloworld!”));

returnSTATUS_SUCCESS;
}

把上面的內(nèi)容copy下來,paste到MyDriver.c,然后添加到剛才新建的工程中。

下面還需要source和makefile兩個配置文件。這兩個文件名是固定的。對于makefile,它是為DDK準(zhǔn)備的,把下面的內(nèi)容copy到一個新建文件中,然后保存為makefile。記?。翰灰淖兝锩娴膬?nèi)容!

#DONOTEDITTHISFILE!!!Edit.\sources.ifyouwanttoaddanew
#sourcefiletothiscomponent.Thisfilemerelyindirectstothe
#realmakefilethatissharedbyallthedrivercomponentsofthe
#WindowsNTDDK

!INCLUDE$(NTMAKEENV)\makefile.def

接下來是source文件

TARGETNAME=MyDriver
TARGETPATH=obj
TARGETTYPE=DRIVER
INCLUDES=.

SOURCES=MyDriver.c

其中SOURCES項指出源代碼文件名,如果有多個文件,用逗號將它們隔開。

把source和makefile拷貝到工程目錄下。

萬事具備了!按下F7構(gòu)建工程,在\objchk\i386目錄下會生成MyDriver.sys
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
WDM驅(qū)動程序設(shè)計之編譯安裝篇
windows XP 驅(qū)動開發(fā)環(huán)境搭建 - BugKing@Technology.Blog...
VC6.0下直接用DDK編譯驅(qū)動程序的方法(入門)
WinXP SP1+DS3.2+XP DDK+VC6.0
如何使用VC6的工具完成DDK和SDK工程 vista
內(nèi)核級Rootkit技術(shù)入門
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服