码迷,mamicode.com
首页 > 其他好文 > 详细

YJX_Driver_009_DDK_HelloWorld_NT

时间:2016-03-24 13:16:46      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

1、

【01:55】.c 后缀名的文件,入口函数DriverEntry() 的默认调用方式是 _stdcall 。

  .cpp的话,入口函数DriverEntry() 的默认调用方式是 _cdecl 。

【02:30】入口函数DriverEntry() 必须是以 _stdcall 来传递参数的

【03:45】PDRIVER_OBJECT // 此结构用来传递驱动对象,由I/O管理器传递进来的驱动对象

    PUNICODE_STRING // 此结构用来指向此驱动负责的注册表,也就是驱动程序在注册表中的路径

【05:55】mini_ddk.c 的代码为:

1 // _stdcall
2 #include <ntddk.h>
3 
4 int DriverEntry(PDRIVER_OBJECT A, PUNICODE_STRING B)
5 {
6     return 1;
7 }

【06:06】这里,用DDK的build来编译

【06:18】创建 文件makefile 和 文件Sources

 【06:40】makefile 格式固定,且一般只有一行(不能有前导空格)

   【06:52】"#"开始的一行,为注释

1 # 此文件 一般只有一行 并且不需要修改 不能有前导空格
2 !INCLUDE $(NTMAKEENV)\makefile.def

【07:20】重点讲 Sources文件的书写

 1 # 下面这行 指定 生成驱动的名字
 2 TARGETNAME=DDK_HelloWorld
 3 # 下面这行 指定生成文件的类型,DRIVER 指驱动
 4 TARGETTYPE=DRIVER
 5 # 下面这行 指定生成驱动所在的路径(这样指定的话,DDK_HelloWorld.sys 就会生成在当前目录的 Check文件夹 中)
 6 TARGETPATH=Check
 7 # 下面这行 指定相关头文件所在的目录路径
 8 INCLUDES=$(BASEDIR)\inc; 9     $(BASEDIR)\inc\wxp;10 
11 ## 上面必须空一行 (是通过实践证明的,若这里不空一行的话,也是不能通过编译的)
12 # F:\WINDDK\3790.1830 等价于 $(BASEDIR)
13 # 下面这行 指定驱动源代码 *.cpp 或 *.c
14 SOURCES=mini_ddk.c

 

【11:18】这几个文件 mini_ddk.c / makefile / Sources ,必须放在同一个目录下。

【11:40】顺便讲一下 Sources文件中的 一行末尾的"\"(如上面的INCLUDE中),当含有多个路径的时候 可以继续往后面添加。这个"\"也可以删除,删除的话,后面的内容必须是写在同一行里面的(后面的内容不能写在下一行中),这个"\"就相当于 换行 的作用

  【12:03】注意 INCLUDE中 每一个目录写完之后,后面是跟一个 分号,而 SOURCES中 文件名后面 是没有 分号 的。

【12:35】该驱动,什么都不做 它能够被正常的加载,但是不能被正常的卸载 ∵它没有 相关的卸载例程(回调函数)

【12:58】打开 DDK3790.1830 自带的命令行(Windows XP Checked Build Environment)

  【13:03】设置目录路径(源代码所在的路径)

  【13:10】输入命令 "build",看是否会报错 ==> 有报错信息

    ZC:我这里居然么有报错哇

     【13:55】他 是把 PUNICODE_STRING 写成了 PUNICDOE_STRING

   【14:21】再次编译 通过了

 【14:50】再次 强制编译生成驱动 "build -c"

   ZC: 我记得 以前用过 类似"build -cZg"

【15:20】以后 将在 mini_ddk 的基础上,完善我们的驱动。如 创建默认的卸载例程

【15:38】这里(mini_ddk)写的不标准,如 DriverEntry 默认是放在init标识的一个内存节里面 但这里我没有这样做

 

2、

 

YJX_Driver_009_DDK_HelloWorld_NT

标签:

原文地址:http://www.cnblogs.com/debugskill/p/5314999.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!