ymxkybqw 发表于 2015-7-20 17:51:19

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

有志同道合的朋友们,可以加我qq:2779535853    一起学习交流!!!

//通过这个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相同");
}
页: [1]
查看完整版本: 郁金香驱动学习>第二课:为驱动添加卸载功能