一、windows内核开发需要的软件
1.WDK
2.WinDbg
3.virtualKD
5.Visual C++ 6.0
6.VMware Workstation
二、windows内核开发软件的安装
1.WDK的安装和配置
wdk的下载地址:http://download.microsoft.com/download/4/A/2/4A25C7D5-EFBE-4182-B6A9-AE6850409A78/GRMWDK_EN_7600_1.ISO
首先下载驱动开发包GRMWDK_EN_7600_1.ISO,并解压到本地文件夹,解压后WDK安装包:
OK到现在为止,WDK的安装和配置全部完成,接下来的活就是它的使用。
2.virtualKD的安装和配置
在内核驱动开发时,VMware Workstation是必不可少的,VMware Workstation的安装教程网上很多(问度娘)。
假设VMware Workstation虚拟机已经安装好了,并且已经成功安装了Windows XP系统。笔者的虚拟机的版本:VMware Workstation10.1,虚拟机里安装的系统版本: Windows XP sp3(目标机),本地安装的系统版本:Windows XP sp3(宿主机)
virtualKD的下载地址:http://virtualkd.sysprogs.org/download/VirtualKD-2.8.exe
首先下载virtualKD到本地,并解压,如图:
现在从虚拟机xp系统回到本地调试机XP系统中:
OK到现在为止,virtulKD的安装和配置全部完成,接下来的活就是它的使用。
3.内核驱动开发IDE的使用
其实用EditPlus等文本软件工具也可以进行驱动程序的编码,但是不太方便。
由于驱动程序的编写主要是用C/C++,因此我们可以配置一下Visual C++ 6.0来进行驱动程序的简易编写。
三、windows内核驱动程序的编写
一个简单的驱动程序所包含的文件:
Hello.c的源码:
<span style="font-family:Microsoft YaHei;font-size:10px;">//开发NT驱动需要的头文件 #include <ntddk.h> //驱动卸载函数的声明 VOID DriverUnload( IN PDRIVER_OBJECT DriverObject ); //驱动入口点函数 NTSTATUS DriverEntry(__in struct _DRIVER_OBJECT *DriverObject, __in PUNICODE_STRING RegistryPath ) { //设置驱动的卸载函数 DriverObject->DriverUnload = DriverUnload; //只会在checked版下显示输出 KdPrint(("hello wdk!\n")); return STATUS_SUCCESS; } //驱动卸载函数 VOID DriverUnload( IN PDRIVER_OBJECT DriverObject ) { KdPrint(("DriverUnload\n")); } //注:当在VC6.0的Include File里添加了WDK的头文件以后, //在VC6.0里写代码就会出现代码高亮</span>
makefile文件--对于所有的驱动程序来说,内容是不变的(直接拷贝过来使用)。
sources文件--驱动编译的配置文件
一个简单的驱动程序需要的3个文件都准备好了,现在可以开始编译了:
开始编译:
编译后的文件夹:
编译成功生成的驱动: