鱼C论坛

 找回密码
 立即注册
查看: 2186|回复: 0

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

[复制链接]
发表于 2015-7-20 17:51:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
有志同道合的朋友们,可以加我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相同");
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-6 09:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表