郁金香驱动学习>第二课:为驱动添加卸载功能

//通过这个buildchk_w2K_x86.log文件可以查看出错信息

//为驱动添加卸载功能
#include <ntddk.h>

//定义个INITCODE宏,这个宏表示 初始化的时候载入内存,然后可以从内存中卸载掉
#define INITCODE code_seg("INIT") //;注意这里是不能加分号的 

//卸载函数的前置说明
VOID DDK_Unload(IN PDRIVER_OBJECT pDriverObject);  

//设置函数代码存放的代码段,这是是放在init段中
#pragma INITCODE
//NTSTATUS 等价与 LONG  
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING B)
{
        KdPrint(("驱动成功被加载..."));

        //Driverunload 回调函数的一个指针,这里的回调函数是卸载驱动的函数
        pDriverObject->DriverUnload = DDK_Unload;
        return 1;
}
VOID DDK_Unload(IN PDRIVER_OBJECT pDriverObject)
{
        
        //KdPrint使用方法类似printf,注意KdPrint((" ",  ));使用的是双括号。
        //这个比DbgPrint 调用要稍好。因为在free 版不被编译。
        KdPrint(("驱动成功被卸载..."));

        DbgPrint("DbgPrint功能与KdPrint相同");
}

欢迎大家一起学习交流,我的qq是2779535853


猜你喜欢

转载自blog.csdn.net/ymxkybqw/article/details/46971905