一、创建回调函数,卸载驱动的时候会执行里面的操作
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;
}