2023驱动保护学习 -- 卸载驱动程序

简介: 2023驱动保护学习 -- 卸载驱动程序

一、创建回调函数,卸载驱动的时候会执行里面的操作

void 卸载驱动回调函数(PDRIVER_OBJECT 驱动对象)
{
  KdPrint(("nxyn:我被卸载了,驱动编号=%p", 驱动对象));
}

二、在主函数中调用该函数

extern "C" NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT 驱动对象, _In_ PUNICODE_STRING psg)
{
  驱动对象->DriverUnload = 卸载驱动回调函数;
  KdPrint(("nxyn:第一个驱动程序,驱动编号:%p", 驱动对象));
  return 0;
}

三、生成驱动文件,拷贝到虚拟机进行测试

四、在DebugView中设置标识符"nxyn",只查看包含nxyn的输出语句

五、在Monitor中,导入该驱动程序,点击go,然后点击stop,查看输出效果

六、在DebugView中会显示,我们要输出的语句,说明驱动加载和卸载都没问题。

七、程序源码

#include <ntifs.h>
void 卸载驱动回调函数(PDRIVER_OBJECT 驱动对象)
{
  KdPrint(("nxyn:我被卸载了,驱动编号=%p", 驱动对象));
}
extern "C" NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT 驱动对象, _In_ PUNICODE_STRING psg)
{
  驱动对象->DriverUnload = 卸载驱动回调函数;
  KdPrint(("nxyn:第一个驱动程序,驱动编号:%p", 驱动对象));
  return 0;
}
目录
相关文章
|
7月前
|
Go
2023驱动保护学习 -- 卸载驱动程序
2023驱动保护学习 -- 卸载驱动程序
18 0
|
27天前
|
关系型数据库 MySQL API
安装驱动
安装驱动。
67 3
|
4月前
2023驱动保护学习 -- 通过代码实现驱动卸载
2023驱动保护学习 -- 通过代码实现驱动卸载
17 0
|
4月前
2023驱动保护学习 -- 通过驱动保护进程
2023驱动保护学习 -- 通过驱动保护进程
19 0
|
4月前
|
Go 开发工具 C++
2023驱动保护学习 -- 创建第一个驱动程序
2023驱动保护学习 -- 创建第一个驱动程序
30 0
驱动开发:实现驱动加载卸载工具
驱动程序加载工具有许多,最常用的当属`KmdManager`工具,如果驱动程序需要对外发布那我们必须自己编写实现一个驱动加载工具,当需要使用驱动时可以拉起自己的驱动,如下将实现一个简单的驱动加载工具,该工具可以实现基本的,安装,加载,关闭,卸载等操作日常使用完全没问题。
389 0