Windows驱动程序开发(1)
状态: 进行中
环境准备
https://go.microsoft.com/fwlink/?linkid=873060
下载WDK(Windows Driver Kit 10.0.15063)
下载对应版本Win SDK(Windows 10.0.15063.468)
Visual Studio (include C++的桌面开发)
第一个Windows驱动程序
驱动运行在Ring0
#include <ntddk.h>
//DriverUnload 为驱动卸载函数,驱动使用真实内存,释放清理资源,3环中内存错误蓝屏
VOID DriverUnload(PDRIVER_OBJECT pDriverObject)
{
//指明未使用的参数,告知编译器,否则会报错
UNREFERENCED_PARAMETER(pDriverObject);
DbgPrint("Unload Success");
}
//DiverEntry 相當於三環程序,也就是應用層程序的main函數
//pDriverObject 驱动对象指针
//pRegPath 注册表路径指针
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRegPath)
{
//指明未使用的参数,告知编译器,否则会报错
UNREFERENCED_PARAMETER(pRegPath);
//指定了驱动卸载程序
pDriverObject->DriverUnload = DriverUnload;
DbgPrint("DiverEntry Success");
//STATUS_SUCCESS == 0,三环中0代表失败,驱动零环中0代表成功
return STATUS_SUCCESS;
}
Windows调试工具
https://docs.microsoft.com/en-us/sysinternals/downloads/debugview
驱动安装程序