一、标准化程序入口
标准化程序入口代码如下:
#include <ntifs.h>
NTSTATUS
DriverEntry(
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
return 0;
}
但是这样编译是有错误的,如下图:
解决方法有2个:
1、在属性页把警告视为错误设置为否。如图:
2、或者在代码里使用这两个参数,DriverObject和RegistryPath。代码如下:
#include <ntifs.h>
NTSTATUS
DriverEntry(
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
DriverObject; //使用一下,解决编译错误
RegistryPath;
return 0;
}
二、KdPrint()函数
KdPrint使用方法类似C语言的Printf,打印输出信息用的。不同的是KdPrint是宏,使用时需要使用双括号。例如:
KdPrint(("Hello world"));
三、虚拟机里加载驱动
接着上面先编译一下,完整代码如下图:
根据这个路径找到这个文件,把这个文件复制到虚拟机里面。打开DebugView,把捕获内核信息的选项勾上。如图:
打开加载驱动的工具 DriverMonitor,具体操作如下图:
驱动加载成功,如图:
今天的这节课就到这里,希望看到此章的朋友给个赞吧!谢谢!有不懂的可以留言,粉丝必答。