现在的位置: 首页 > 综合 > 正文

windows内核开发环境的简易搭建

2018年02月08日 ⁄ 综合 ⁄ 共 1464字 ⁄ 字号 评论关闭

一、windows内核开发需要的软件

1.WDK

2.WinDbg

3.virtualKD

4.DebugView

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个文件都准备好了,现在可以开始编译了:


开始编译:


编译后的文件夹:


编译成功生成的驱动:







抱歉!评论已关闭.