驅動程式開發—工具篇

來源:互聯網
上載者:User
因為我學習的時候是在win2000下進行的,所以一切以我學習時的配置為準。

第一:安裝win2000作業系統,我安裝是win2000進階伺服器版本。

第二:安裝Vc++6.0,我裝的是英文版。

第三:安裝win2000DDK;

通常驅動程式的調試都是用ddk在cmd中完成的。這部分我暫時略過。下面先介紹如何設定vc++6.0在Visual Studio 6.0Integration Environment中開發裝置驅動程式的方法。

在Windows上,Windows DDK提供的開發環境是基於命令列的,操作起來極為不便,而Visual Studio 6.0給我們提供了非常友好易用的Integration Environment,讓我們有如虎添翼之感。 
  那麼,能否利用Visual Studio的Integration Environment來開發驅動程式呢?答案是可以的。通過對Visual StudioIntegration Environment的簡單設定,建立好自己的驅動開發Integration Environment就可以了。

首先要求系統已安裝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你的驅動程式了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.