天天看點

指令行編譯和VC6.0編譯驅動程式的方法

編譯驅動程式分兩個步驟,

1、設定編譯環境

2、進行實際編譯過程

還有一個前提條件就是要安裝ddk

1、運作ddk目錄下的setenv.bat,該指令最少有兩個輸入參數,一個是ddk的安裝路徑,一個是要求的編譯結果。在不知道該如果輸入參數的時候,可以不用任何參數,直接輸入setenv.bat指令,它會提示你如何輸入。比如輸入setenv d:\ddk free WXP就表示,你的ddk安裝在d:\ddk這個路徑下,編譯結果是一個不帶調試資訊的WXP驅動

2、運作bin\x86目錄下的build.exe進行實際編譯過程。在你的應用程式目錄下,直接運作帶路徑的build指令(帶路徑的目的是不和vc的指令沖突)。就可以完成編譯過程。

也可以在修改vc的編譯環境,直接編譯。修改的方法如下:

在Visual Studio 6.0內建環境中開發裝置驅動程式的方法

  在Windows上,Windows DDK提供的開發環境是基于指令行的,操作起來極為不便,相信進行過驅動程式開發的朋友一定對此深惡痛絕。另一方面,Visual Studio 6.0卻給我們提供了非常友好易用的內建環境,讓我們有如虎添翼之感。

  那麼,能否利用Visual Studio的內建環境來開發驅動程式呢?筆者經過多方探索,并結合自己開發驅動的經驗,摸索出了一套實用的方法,通過對Visual Studio內建環境的簡單設定,建立了自己的驅動開發內建環境了。  下面筆者的一些經驗奉獻出來與大家共享,如有不當,歡迎指正。

0.系統要求已安裝

  DDK

  Visual C++6.0(安裝時選上所有工具)

1.改造ddk\bin\setenv.bat

  把要求mstools的有關語句注釋掉(若想在指令行環境開發驅動則還需加入call VC_DIR\VC98\Bin\Vcvars32. bat),以便能在指令行使用vc的相關工具;若隻想在IDE環境開發就不必調用Vcvars32.bat,因為相關工具的路徑資訊可以在vc環境中設定.)

2.建立一個目錄DriverEnv(目錄名随意),作為你開發驅動的大學營

3.在該目錄下建立一個批處理檔案MakeDrvr.bat,内容如下:

@echo off

if "%1"=="" goto usage

if "%3"=="" goto usage

if not exist %1\bin\setenv.bat goto usage

call %1\bin\setenv %1 %4

%2

cd %3

build -b -w %5 %6 %7 %8 %9

goto exit

:usage

echo usage MakeDrvr DDK_dir Driver_Drive Driver_Dir free/checked [build_options]

echo eg MakeDrvr %%DDKROOT%% C: %%WDMBOOK%% free -cef

:exit

  該批處理首先對傳遞的參數作一些檢查,然後調用ddk的setenv指令設定環境變量,然後改變目錄為源程式所

在驅動器和目錄,并最後調用build,-b保證顯示完全的錯誤資訊,-w保證在螢幕上輸出警告,在vc ide裡的output視窗中可以看到這些錯誤和警告。

4.建立一個空白工程

  選File的new菜單項,然後選project欄的makefile,然後輸入路徑,一路next下去即可,visual studio提供兩種配置win32 debug和win32 release.

5.修改這兩種配置

  選project的settings菜單項win32 debug:

  在Build Command Line一欄填入MakeDrvr DDK_DIR SOURCE_DRIVE SOURCE_DIR checked [build options]

  在Rebuild all options一欄填入 -nmake /a

  在output file一欄填入與sources檔案中的TARGETNAME相同的檔案名

  在Browse info file name一欄填入obj\i386\checked\(與TARGETNAME相同的檔案名,見下述).bsc

  win32 release:

  在Build Command Line一欄填入MakeDrvr DDK_DIR SOURCE_DRIVE SOURCE_DIR free [build options]

  在Rebuild all options一欄填入 -nmake /a

  在output file一欄填入與sources檔案中的TARGETNAME相同的檔案名

  在Browse info file name一欄填入obj\i386\free\(與TARGETNAME相同的檔案名).bsc

  注:DDK_DIR一般可以寫成%BASEDIR%,build options一般為-cef即已足夠

6.添加源檔案到工程

  可以建立,也可以添加,這和普通的win32開發一樣。

7.添加資源檔案

  選INSERT的RESOURCE菜單項即可

8.把檔案makefile放入源程式目錄,其内容總是

#

# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source

# file to this component. This file merely indirects to the real make file

# that is shared by all the driver components of the Windows NT DDK

#

!INCLUDE $(NTMAKEENV)\makefile.def

9.把檔案Sources放入源程式目錄,内容為

  TARGETNAME=RamDrive//這是要生成的驅動程式.sys檔案的名字

  TARGETPATH=obj //.sys檔案所在目錄的上層目錄,(由于ddk的bug)應手工在obj目錄下建立checked和free目錄,以作為.sys的最終存放目錄

  TARGETTYPE=DRIVER //驅動程式的類型,一般不變

  INCLUDES=$(BASEDIR)\inc //ddk包含檔案路徑,一般不變

  SOURCES=RamDrive.cpp RamDrive.rc //源檔案(不要頭檔案),資源檔案

  BROWSER_INFO = 1 //若想要浏覽資訊,則要有本行;否則可無

10.因為MakeDrvr.bat在DriverEnv目錄,是以應把該目錄添加到vc的Executable files裡面

  選tools的options菜單項,然後選directories頁,在show directories for一欄選擇Executable files,然後添加即可.

  至此,環境設定完畢,你可以按F7, build你的驅動程式了。   

繼續閱讀