在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你的驱动程序了。

时间: 2024-04-26 11:34:46

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

用VC6.0集成环境快速开发VxD

VxD (Virtual Device Driver), 即虚拟设备驱动程序, 是运行在处理器Ring0特权级别的驱动程序,可以执行任何处理器指令,访问机器中的任何数据寄存器.VxD被用作Windows 9x系统和物理设备之间的接口,扩展了WINDOWS 系统的核心服务,能够访问和控制实际的硬件环境. 随着WIN 2000和新一代的设备驱动程序WDM(Windows Driver Model)推出,预计VxD将慢慢过时,而现实情况却是:随便打开一种网络计数器的统计窗口就会发现,Windows 9

Visual Studio 2008 、 Windows 环境变量介绍 和 如何在文件中引用环境变量 .

Visual Studio 2008  和 Windows 环境变量对设置 相对路径很重要,这样便于代码的移植,即使换一台计算机,代码不用更改配置,直接就能用. 可以在项目的"工具""属性页"对话框中任何接受字符串的位置使用这些宏.这些宏不区分大小写.  关于如何自己定义环境变量详见我的另一文章:http://blog.csdn.net/jtop0/article/details/7574139     宏 说明 $(RemoteMachine) 在"调试

visual studio-lucene.net3.0.3开发环境配置 Visual Studio 10.0

问题描述 lucene.net3.0.3开发环境配置 Visual Studio 10.0 怎么配置lucene.net3.0.3的开发环境,使其在Visual Studio 10.0上可以运行.我现在只有lucene.net3.0.3的代码,不知道该怎么用. 解决方案 你的代码里面有没有包含相应的包或者dll文件?如果没有,使用Install-Package Lucene.Net下载Lucene.Net 3.0.3包.

visual studio 2010-opencv3.0.0 imwrite保存图片失败(Qt5,vs2010环境下)

问题描述 opencv3.0.0 imwrite保存图片失败(Qt5,vs2010环境下) 在Qt5+vs2010+opencv3.0.0的环境中 简单的读取和保存图片,导致崩溃 解决方案 代码上看不出问题,是不是图像本身的问题,换个其他图片试试 解决方案二: 图片没问题, 同样的代码,在控制台程序中就ok,在Qt程序中就崩溃:Qt中Debug版本也ok,release版本就崩溃 解决方案三: 楼主问题解决了吗?我也遇到了同样的问题,能不能指点一下?非常感谢~

版本管利器Visual SourceSafe 6.0实用指南(中)

四.VSS6.0服务器的安装 在我们给出整个解决方案后,现在来看一下如何安装VSS服务器.VSS 6.0是Microsoft Visual Studio 6.0 套件的成员,我们就以这个版本为例进行说明. 第一步,将Visual Studio 6.0 的CD1放入CD-ROM,自动进入安装程序,选择第二项"Server Applications and Tools(Add Only)",如图1所示: 第二步,然后在"Server Setups"的"Serv

apache24 配置问题-wampserver集成环境中配置虚拟主机总是出现403Forbidden

问题描述 wampserver集成环境中配置虚拟主机总是出现403Forbidden 页面错误提示 Forbidden You don't have permission to access / on this server. Apache/2.4.9 (Win32) PHP/5.5.12 Server at www.myshop.com Port 80 我按照经验修改过的地方: 1.在httpd.conf加载hosts模块 # Virtual hosts Include conf/extra/

在Visual Studio 2013/2015上使用C#开发Android/IOS安装包和操作步骤

原文:在Visual Studio 2013/2015上使用C#开发Android/IOS安装包和操作步骤 Xamarin 配置手册和离线包下载  http://pan.baidu.com/s/1eQ3qw8a 具体操作: 安装前提条件 1. 安装Visual Studio 2013,安装过程省略,我这里安装的windows10 + vs2013 with update 4. 2. 安装Java SDK,按照Next一步步安装,此处省略,如下图: 3. 安装Android SDK:因为在线安装的

Android中修改设备权限的方法_Android

本文实例讲述了Android中修改设备权限的方法.分享给大家供大家参考.具体如下: 有时我们编写了驱动后,在上层程序中要访问设备,但android代码编译后的设备权限是root的,其他用户不可访问(包括system),只是就需要在android源码中将设备的权限修改下. 具体的修改位置为源码的system/core/init/devices.c文件中static struct perms_ devperms[]的定义中,如添加设备hidraw0的权限,只需添加一行: 复制代码 代码如下: { "

Android中修改设备权限的方法

本文实例讲述了Android中修改设备权限的方法.分享给大家供大家参考.具体如下: 有时我们编写了驱动后,在上层程序中要访问设备,但android代码编译后的设备权限是root的,其他用户不可访问(包括system),只是就需要在android源码中将设备的权限修改下. 具体的修改位置为源码的system/core/init/devices.c文件中static struct perms_ devperms[]的定义中,如添加设备hidraw0的权限,只需添加一行: 复制代码 代码如下:{ "/