鱼C论坛

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

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

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

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

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

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

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

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

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

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

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

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

  24.         DbgPrint("DbgPrint功能与KdPrint相同");
  25. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-18 06:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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