- ·上一篇文章:怎样成PHP高手?学会懒惰的去编程
- ·下一篇文章:入门:PHP编程中“字符串”小常识
VisualStudio构造WDM设备驱动程序
WDM(Win32 Driver Model),即Win32驱动程序模型,是Microsoft力推的全新驱动程序模式,旨在通过提供一种灵活的方式来简化驱动程序的开发,在实现对新硬件支持的基础上减少并降低所必须开发的驱动程序的数量和复杂性。
目前,用于WDM驱动程序开发的主要工具是Microsoft公司提供的DDK(Driver Development Kit),其中包含许多内核态函数及数据结构的定义;包含很多非常有用的调试、测试及构造工具,还提供了许多驱动程序实例和丰富的帮助文档。此外,开发人员通常都会在Visual Studio集成开发环境中创建、编辑设备驱动程序项目。
在Visual Studio中创建了程序的工程之后、必须经过编译、链接才能构成程序可执行文件。但由于Visual Studio不能用于内核程序的构造,所以常常需要退出编辑环境,使用DDK中提供的专用工具Build来构造设备驱动程序。
为了提高驱动程序的开发效率,简化驱动程序的构造过程,我们可以通过改变设置,从Visual Studio直接构造WDM驱动程序。
本文将以一个简单的Windows设备驱动程序WdmTest为例,介绍其创建和构造过程。
系统设置
1、DDK安装
编写WDM设备驱动程序之前需要安装Microsoft的驱动程序开发工具包DDK。
安装DDK后,在DDK程序组下有Check和Free两个编译环境,Check环境用于编译带调试信息的驱动程序,Free则是编译正式发布版本的环境。
2、环境变量设置
DDK安装成功后,需要为其设置环境变量。
首先,设置一个叫做DDKROOT的环境变量,它指向Windows2000 DDK或Windows98 DDK的基目录。
然后,设置一个叫做WDMDIR的环境变量,它指向驱动程序的基目录。
在Windows98平台下,把这些环境变量添加到AUTOEXEC.BAT文件中;在Windows2000平台下,在控制面板“系统”程序的“高级”标签中的“环境变量”中设置环境变量。
WDM驱动程序组成
一个最基本的设备驱动程序应该包含2部分:驱动程序源文件和驱动程序构造文件。
表1列出了WdmTest使用的所有源文件,表2列出了WdmTest使用的所有构造件。
----表1 WdmTest源文件----
Init.cpp 进入和卸载代码
Dispatch.cpp 主要的IRP分发例程
Pnp.cpp 即插即用和代码
Power.cpp 电源管理代码
WdmTest.rc 版本资源
WdmTest.h 驱动程序头文件
GUIDs.h GUID定义
Ioctl.h IOCTL定义
resource.h 资源编辑器头文件
----------------------------------------
-----WdmTest构造文件-----
SOURCES build指定
makefile 标准makefile
MakeDrvier Makefile项目批处理文件
----------------------------------------
目前,用于WDM驱动程序开发的主要工具是Microsoft公司提供的DDK(Driver Development Kit),其中包含许多内核态函数及数据结构的定义;包含很多非常有用的调试、测试及构造工具,还提供了许多驱动程序实例和丰富的帮助文档。此外,开发人员通常都会在Visual Studio集成开发环境中创建、编辑设备驱动程序项目。
在Visual Studio中创建了程序的工程之后、必须经过编译、链接才能构成程序可执行文件。但由于Visual Studio不能用于内核程序的构造,所以常常需要退出编辑环境,使用DDK中提供的专用工具Build来构造设备驱动程序。
为了提高驱动程序的开发效率,简化驱动程序的构造过程,我们可以通过改变设置,从Visual Studio直接构造WDM驱动程序。
本文将以一个简单的Windows设备驱动程序WdmTest为例,介绍其创建和构造过程。
系统设置
1、DDK安装
编写WDM设备驱动程序之前需要安装Microsoft的驱动程序开发工具包DDK。
安装DDK后,在DDK程序组下有Check和Free两个编译环境,Check环境用于编译带调试信息的驱动程序,Free则是编译正式发布版本的环境。
2、环境变量设置
DDK安装成功后,需要为其设置环境变量。
首先,设置一个叫做DDKROOT的环境变量,它指向Windows2000 DDK或Windows98 DDK的基目录。
然后,设置一个叫做WDMDIR的环境变量,它指向驱动程序的基目录。
在Windows98平台下,把这些环境变量添加到AUTOEXEC.BAT文件中;在Windows2000平台下,在控制面板“系统”程序的“高级”标签中的“环境变量”中设置环境变量。
WDM驱动程序组成
一个最基本的设备驱动程序应该包含2部分:驱动程序源文件和驱动程序构造文件。
表1列出了WdmTest使用的所有源文件,表2列出了WdmTest使用的所有构造件。
----表1 WdmTest源文件----
Init.cpp 进入和卸载代码
Dispatch.cpp 主要的IRP分发例程
Pnp.cpp 即插即用和代码
Power.cpp 电源管理代码
WdmTest.rc 版本资源
WdmTest.h 驱动程序头文件
GUIDs.h GUID定义
Ioctl.h IOCTL定义
resource.h 资源编辑器头文件
----------------------------------------
-----WdmTest构造文件-----
SOURCES build指定
makefile 标准makefile
MakeDrvier Makefile项目批处理文件
----------------------------------------


