在上一节课我们已经成功加载了一个驱动,但是不能卸载。这节课来完善驱动框架,使其能够正常卸载。这里直接上代码吧,比较直观。代码如下:
#include <ntifs.h>
void DriverUnload(PDRIVER_OBJECT DriverObject) //第5课新增代码
{
KdPrint(("zdsoft:进入卸载例程driver=%p", DriverObject));
}
NTSTATUS
DriverEntry(
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
DriverObject->DriverUnload = DriverUnload; //第5课新增代码
RegistryPath;
//KdPrint(("zdsoft:Hello world!"));
//这里为了更直观,把加载时的驱动对象打印出来和卸载的驱动对象对比。
KdPrint(("zdsoft:Hello World! driver=%p", DriverObject));//第5课新增代码
return 0;
}
然后编译成功后找到驱动文件复制到虚拟机里,这个步骤在上一节课里有,这里就省略了,直接上图:
卸载图:
好了,今天的这节课就到这里,希望看到此文章的朋友给个关注,谢谢!有不懂的可以留言,一般24小时内回复。