编写简单的驱动

1.下面写一个最简单的驱动,这个驱动只有两个函数,也就是说一个驱动最少需要两个函数,这两个函数是

NTSTATUSDrvierEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING pRegPath);

VOID DriverUnload(PDRIVER_OBJECT pDriver);


 2.我们先建一个驱动项目:

2.1 创建或者需要选择一个解决方案,右键 添加->新建项目,在左侧的 解决方案管理器中 多出了一个项目

MyDriver...,


<span style="font-size:24px;color:#996633;"><strong>往Source Files中添加一个.c文件(开发驱动,最好使用.c后缀文件,而非默认的c++)</strong></span>
<span style="font-size:24px;color:#996633;"><strong>右键MyDriver1 添加->新建项->cpp文件 (cpp文件使用  文件名.c 形式  而不是 文件名.cpp )</strong></span>


</pre><span style="color: rgb(204, 0, 0); font-weight: bold; font-size: 18px;"></span></p><p></p><pre name="code" class="cpp">
#include <wdm.h></span>
#pragma warning( disable : 4100 )
NTSTATUS  DriverEntry(PDRIVER_OBJECT pDriver,PUNICODE_STRING pPath);
VOID DriverUnload(PDRIVER_OBJECT pDriver);
#pragma alloc_text(PAGE,DriverUnload)
pragma alloc_text(init,DriverEntry)

VOID DriverUnload(PDRIVER_OBJECT pDriver )
{
	KdPrint(("Leave Driver\n"));
}

NTSTATUS  DriverEntry(PDRIVER_OBJECT pDriver,PUNICODE_STRING pPath)
{
     KdPrint(("Enter Driver\n"));
	pDriver->DriverUnload = DriverUnload;return STATUS_SUCCESS;
}


 
 
 记得加上#pragma  warning(disable:4100) 不然编译会报错,虽然不是什么大错 

1>------ 已启动全部重新生成:  项目: MyDriver1, 配置: Win7 Debug Win32 ------
1>  Stamping Win7Debug\MyDriver1.inf [Version] section with DriverVer=07/27/2016,8.30.1.446
1>  firstdriver.c
1>firstdriver.c(9): error C2220: 警告被视为错误 - 没有生成“object”文件
1>firstdriver.c(9): warning C4100: “pDriver”: 未引用的形参
1>firstdriver.c(14): warning C4100: “pPath”: 未引用的形参

加上#pragma  warning(disable:4100) ,或者

在相应的这两个函数中没有引用的参数,加上

UNREFERENCED_PARAMETER( 这里填报错的参数 )

//这里指的是pDriver 和pPath


2.编译成功找到,相应驱动

打开 视图->解决方案资源管理器-> 右键(相应项目属性)->在文件资源管理器中打开文件

我们就来到了相应目录,返回上一层,来到Win7Debug目录(因为我默认了项目配置,我这里是win7Debug Win32,故生成相应目录)



而相应的目录下有了如下文件,MyDriver1.sys就是我们要的




将MyDriver1.sys  拖进我的VM虚拟机 32位win7系统中,顺便准备 DebugView.exe和 一个驱动加载程器

DebugView.exe

驱动加载程序    

1.下载好后将他们都放进虚拟机中,如果想要 直接复制文件(就要在本机 中直接右键那样),需要给虚拟机安装 VMware Tools

2.使用DebugView.exe时,有可能没有输出,这时你可能需要修改下注册表

win+r  输入   regedt32.exe, 在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager,打开或者创建子项Debug Print Filter,然后新建一个DWORD值DEFAULT,将其设置成0xF,重启即可。

3.虚拟机中的操作

1.右键DebugView.exe,选择capture选项,将下面所有的项目都选上



2.打开驱动加载器,将写好的Mydriver1.sys拖进 加载器中


点击安装后

点击启动后

至此我们怎么知道究竟我们的驱动,进入系统了没

使用PC Hunter.exe

点击下载软件


打开PC Hunter,点击驱动模块 选项卡,发现了我的驱动

点击停止后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值