郁金香驱动学习>第二课:为驱动添加卸载功能
有志同道合的朋友们,可以加我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]