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 Drivern"));
}
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver,PUNICODE_STRING pPath)
{
KdPrint(("Enter Drivern"));
pDriver->DriverUnload = DriverUnload;return STATUS_SUCCESS;
}
记得加上#pragma warning(disable:4100) 不然编译会报错,虽然不是什么大错
1>------ 已启动全部重新生成: 项目: MyDriver1, 配置: Win7 Debug Win32 ------
1> Stamping Win7DebugMyDriver1.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_MACHINESYSTEMCurrentControlSetControlSession Manager,打开或者创建子项Debug Print Filter,然后新建一个DWORD值DEFAULT,将其设置成0xF,重启即可。
3.虚拟机中的操作
1.右键DebugView.exe,选择capture选项,将下面所有的项目都选上
2.打开驱动加载器,将写好的Mydriver1.sys拖进 加载器中
点击安装后
点击启动后
至此我们怎么知道究竟我们的驱动,进入系统了没
使用PC Hunter.exe
点击下载软件
打开PC Hunter,点击驱动模块 选项卡,发现了我的驱动
点击停止后
最后
以上就是贪玩冬日最近收集整理的关于编写简单的驱动的全部内容,更多相关编写简单内容请搜索靠谱客的其他文章。
发表评论 取消回复