• 在Visual Studio 6.0集成环境中开发设备驱动程序的方法


    作者:yansm

    提交者:eastvc 发布日期:2003-10-19 19:47:05
    原文出处:http://www.china-pub.com


    在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你的驱动程序了。
  • 相关阅读:
    高盛、沃尔玛 题做出来还挂了的吐槽
    amazon师兄debrief
    到所有人家距离之和最短的中点 296. Best Meeting Point
    问问题没人回答的情况怎么办终于有解了
    找名人 277. Find the Celebrity
    数组生存游戏 289. Game of Life
    547. Number of Provinces 省份数量
    428. Serialize and Deserialize Nary Tree 序列化、反序列化n叉树
    alias别名简介和使用
    面试官:线程池执行过程中遇到异常会发生什么,怎样处理? Vincent
  • 原文地址:https://www.cnblogs.com/runfeng/p/261029.html
Copyright © 2020-2023  润新知