WDM驱动程序设计之编译安装篇

2016-01-29 12:42 41 1 收藏

WDM驱动程序设计之编译安装篇,WDM驱动程序设计之编译安装篇

【 tulaoshi.com - C语言心得技巧 】

  编译设备驱动程序的方法

  安装DDK后,在DDK程序组下有Check和Free两个编译环境,Check环境用于编译带调试信息的驱动程序,Free则是编译正式发布版本的环境。通常情况下设备驱动程序的编译采用命令行的方式。通过一定的设置可以在VC ++的集成环境下编译。

  一般来说,成功编译一个最基本的设备驱动程序需要四个文件,第一个是驱动程序,即C语言源程序文件(例如vdisk.c,注意下面所有的例子都是以vdisk来说明);第二个是RC文件(例如vdisk.rc);第三个是sources文件;第四个文件是makefile.rc文件。sources文件和make文件类似,用来指定需要编译的文件以及需要连接的库文件。这三个辅助文件都很简单,在DDK samples的每个例程里都有三个这样的文件,依样画瓢就能理解它们的结构和意义。

  1.举例分析

  以下以vdisk程序为例,设vdisk.rc代码为:

  /vdisk.rc/

  #include

  #include

  #define VER_FILETYPE  VFT_DRV

  #define VER_FILESUBTYPE VFT2_DRV_SYSTEM

  #define VER_FILEDESCRIPTION_STR "SCSI VDisk Driver"

  #define VER_INTERNALNAME_STR "vdisk.sys"

  #define VER_ORIGINALFILENAME_STR "vdisk.sys"

  #include "common.ver"

  /end of vdisk.rc/
  设备驱动程序一般都使用Build实用程序来进行,Build只是NMAKE外面的一个外包装程序。Build本身其实相当简单,编译的大部分工作实际上由Build传递给NMAKE来进行。

  /SOURCES/

  TARGETNAME=vdisk

  TARGETTYPE=DRIVER

  TARGETPATH=$(BASEDIR)lib

  TARGETLIBS=$(BASEDIR)lib$(DDKBUILDENV)scsiport.lib

  INCLUDES=....inc

  SOURCES=vdisk.c vdisk.rc

  /end of SOURCES/

  注意SOURCES的文件名没有任何扩展名。

  # 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

  # end of makefile
  对所有驱动程序而言,makefile都是一样的,Microsoft也警告不要编辑这个文件,如果需要,可以编辑修改sources文件达到同样的效果。对于设备驱动程序,所使用的C编译器基本上无一例外地选用VC++。

  2.编译的基本步骤

  (1)首先进入check或free编译环境,初始化DDK编译环境。

  (2)运行VC安装目录下bin目录下的vcvars32.bat,初始化VC++编译环境。

  (3)运行Build.exe进行编译。

  ■设备驱动程序的安装和启动

  1.添加注册表中的键值

  Windows NT在引导的时候,通过扫描注册表构造驱动程序列表。这个列表既包括自启动的驱动程序,也包括需要手工启动的驱动程序。这个列表其实就是控制面板中设备Applet所列出来的所有设备。所有的设备驱动程序应该在注册表的HKEY_LOCAL_MACHINESystemCurrentControl-

  SetServices下有相应的键值。下面以vdisk为例来说明如何添加键值:

  首先在HKEY_LOCAL_MACHINE System Current ControlSetServices下添加一个子项vdisk,注意这里的名称应该和你的驱动程序名称一致。例如驱动程序名称是vdisk.sys,那么这里的子项名称就是vdisk。然后在vdisk下添加以下键值:

名称数据类型说明TypeREG_DWORD驱动程序的种类StartREG_DWORD驱动程序的起始启动时间ErrorControlREG_DWORD<

来源:http://www.tulaoshi.com/n/20160129/1487272.html

延伸阅读
标签: 电脑入门
Windows 7 会自动安装驱动程序,很方便也很人性化。不过,有时候驱动程序和硬件并不一定兼容,安装了还要卸载。或者出于安全考虑,不希望 Windows 7 自动安装驱动,可不可以这样呢? 解决方法有两种: 方法一:更改设备安全设置 1. 按一下开始按钮,在开始搜索框中键入设备和打印机,然后单击打开。 2. 这个窗口中包含了所有连接到当前计...
标签: 电脑入门
使用win7系统的很多人不喜欢系统自动安装驱动程序,这时我们应该怎么处理呢?下面就来看看具体操作方法吧。 按一下开始按钮,在开始搜索框中键入设备和打印机,然后单击打开。 这个窗口中包含了所有连接到当前计算机上的设备。包括显示器、键盘、鼠标、打印机等等。 把鼠标定位到代表计算机的图标上。 注意,图标的名称并不是我们常见...
win7电脑如何禁止驱动程序自动安装?   以前图老师小编就曾经介绍过,电脑中很多的补丁信息,还有服务项目都是系统自动更新下载并进行安装的,这可以帮助用户节约不少的时间,也会让系统永远不会立于不完善的境界,不过对于一些电脑来说,下载一些不必要的程序驱动反倒是会成为电脑的负担,成为占着CPU不拉屎的罪魁祸首,或者说造成驱...
驱动程序有哪些分类   在Windows 9x下,驱动程序按照其提供的硬件支持可以分为:声卡驱动程序、显卡驱动程序、鼠标驱动程序、主板驱动程序、网络设备驱动程序、打印机驱动程序、扫描仪驱动程序等等。为什么没有CPU、内存驱动程序呢?因为CPU和内存无需驱动程序便可使用,不仅如此,绝大多数键盘、鼠标、硬盘、软驱、显示器和主板上的...
怎么阻止Windows7系统自动安装驱动程序 win7的集成度和智能化很高,多数USB设置甚至打印机等外设,一接入电脑进入WIN7就能自动为你安装好驱动,便某些情况下我们需要卸载驱动,卸载驱动后敪是重启,这里不需要WIN7自动安装驱动了该怎么办了呢? 工具/原料 Windows7 or more 外设 方法/步骤 先右击桌面上的计算机...

经验教程

86

收藏

52
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部