VC6.0配置编译驱动指南:从NT到WDM

5星 · 超过95%的资源 需积分: 10 23 下载量 90 浏览量 更新于2024-11-24 收藏 727KB DOC 举报
"VC6.0编译驱动程序的配置指南" 在Windows驱动开发中,Visual C++ 6.0(简称VC6.0)是一种常用的编译环境,尤其适用于开发NT式驱动和WDM(Windows Driver Model)驱动。本文将详细介绍如何在VC6.0中配置工程以成功编译这两种类型的驱动。 一、编译NT式驱动 1. 创建Win32应用程序工程:首先,我们需要在VC6.0中新建一个Win32应用程序项目,但请注意,这不是一个标准的应用程序,而是用于驱动的特殊工程。 2. 修改工程属性: - C/C++设置:进入Project -> Setting -> C/C++,将ProjectOptions内容替换为`/nologo/Gz/MLd/W3/WX/Z7/Od/DWIN32=100/D_X86_=1/DWINVER=0x500/DDBG=1/Fo"MyDriver_Check/"/Fd"MyDriver_Check/"/FD/c`,这些参数用于定义编译选项,如优化、警告级别和调试信息。 - Link设置:进入Project -> Setting -> Link,将ProjectOptions内容替换为`ntoskrnl.lib/nologo/base:"0x10000"/stack:0x400000,0x1000 /entry:"DriverEntry"/subsystem:console/incremental:no /pdb:"MyDriver_Check/HelloDDK.pdb"/debug/machine:I386/nodefaultlib /out:"MyDriver_Check/HelloDDK.sys"/pdbtype:sept/subsystem:native/driver /SECTION:INIT,D/RELEASE/IGNORE:40784`,这些设置与链接器相关,如入口点、内存分配、调试信息等。 3. 调整库和头文件路径:为了包含DDK(Driver Development Kit)所需的库和头文件,需要在Tools -> Options -> Directories中更新相关路径,例如将DDK的BIN、INC和LIB目录添加到相应的可执行文件、包含文件和库文件目录列表中。 二、编译WDM式驱动 与编译NT式驱动类似,编译WDM驱动也从创建Win32应用程序工程开始,然后进行类似的工程属性修改。关键区别在于,WDM驱动通常需要更多的DDK相关的头文件和库支持。在C/C++和Link的设置中,参数可能略有不同,以适应WDM驱动的要求。 在实际开发中,开发者还需要熟悉驱动开发的基本概念,如DriverEntry函数、IRP(I/O请求包)、设备对象和设备驱动程序接口(DDI)。同时,理解DDK提供的工具和API,如IoCreateDevice、IoRegisterDeviceInterface等,对于编写有效和稳定的驱动至关重要。 配置VC6.0来编译驱动涉及到修改工程属性、调整编译链接选项以及确保正确的库和头文件路径。通过这种方式,开发者可以利用VC6.0的强大功能来构建和调试Windows驱动程序,尽管现代驱动开发更多地转向了Visual Studio的更新版本和WDK(Windows Driver Kit)。