1->驱动开发 helloWorld程序
2016-04-17 12:54
323 查看
一 安装vmvare 并且安装上xp系统
假设已经安装了虚拟机 并且已经安装了xp x86版
二 下载wdk 并且安装
在微软官网下载 wdk7600.16385.1安装 安装时 将例子也勾上
假设安装在c:/winddk目录下
目录下的/7600.16385.1/src中有许多源代码 可供参考
三 编写源代码
如下helloworld步骤:
在c盘添加一个目录 driverTest 在该目录下
1 添加源代码: 添加一个 test.c [注意这里是c后缀 表示使用c语言开发]
内容:(以下相当于c语言的main函数)
#include <ntddk.h>
int DriverEntry(PDEVICE_OBJECT dev,PUNICODE_STRING regPath ){
return 0;
}
2 添加MAKEFILE文件 文件内容只有一行 !INCLUDE $(NTMAKEENV)\makefile.def
3 添加source文件 文件内容如下
#表示被生成的驱动文件的名称为 那么最终会生成 test.sys
TARGETNAME=test
#表示生成的是一个驱动
TARGETTYPE=DRIVER
#表示驱动被生成的目录
TARGETPATH=sys
#表示 驱动编译的源文件有哪些 使用 \表示换行
SOURCES=\
test.c \
如果这些文件不记得这些单词 可以到 7600.16385.1/src下搜索一下 makefile或者source 基本每一个驱动都有这两个文件 稍微改动一下就可以使用
四 编译生成sys文件
开始-程序-Windows Driver Kits-WDK 7600.16385.1-Build Environments-Windows XP-x86 Checked Build Environment
运行Windows XP-x86 Checked Build Environment 进入 刚刚创建的driverTest目录
使用dos命令 cd c:/driverTest目录
执行命令 build 或者build -c 【-c表示如果已经编译过 还是重新在编译一次 】
C:\drivertest>build -c
BUILD: Compile and Link for x86
BUILD: Loading c:\winddk\7600.16385.1\build.dat...
BUILD: Computing Include file dependencies:
BUILD: Start time: Sun Apr 17 12:45:50 2016
BUILD: Examining c:\drivertest directory for files to compile.
c:\drivertest Auto-cleaning queue for 'root:x86chk' (1 of 1 file(s) removed)
Invalidating OACR warning log for 'root:x86chk'
BUILD: Saving c:\winddk\7600.16385.1\build.dat...
BUILD: Compiling and Linking c:\drivertest directory
Configuring OACR for 'root:x86chk' - <OACR on>
_NT_TARGET_VERSION SET TO WINXP
Compiling - test.c
Linking Executable - sys\i386\wpdhelloworlddriver.sys
BUILD: Finish time: Sun Apr 17 12:45:51 2016
BUILD: Done
3 files compiled
1 executable built
编译后 查看目录 下 存在一个 /sys/i386/test.sys
假设已经安装了虚拟机 并且已经安装了xp x86版
二 下载wdk 并且安装
在微软官网下载 wdk7600.16385.1安装 安装时 将例子也勾上
假设安装在c:/winddk目录下
目录下的/7600.16385.1/src中有许多源代码 可供参考
三 编写源代码
如下helloworld步骤:
在c盘添加一个目录 driverTest 在该目录下
1 添加源代码: 添加一个 test.c [注意这里是c后缀 表示使用c语言开发]
内容:(以下相当于c语言的main函数)
#include <ntddk.h>
int DriverEntry(PDEVICE_OBJECT dev,PUNICODE_STRING regPath ){
return 0;
}
2 添加MAKEFILE文件 文件内容只有一行 !INCLUDE $(NTMAKEENV)\makefile.def
3 添加source文件 文件内容如下
#表示被生成的驱动文件的名称为 那么最终会生成 test.sys
TARGETNAME=test
#表示生成的是一个驱动
TARGETTYPE=DRIVER
#表示驱动被生成的目录
TARGETPATH=sys
#表示 驱动编译的源文件有哪些 使用 \表示换行
SOURCES=\
test.c \
如果这些文件不记得这些单词 可以到 7600.16385.1/src下搜索一下 makefile或者source 基本每一个驱动都有这两个文件 稍微改动一下就可以使用
四 编译生成sys文件
开始-程序-Windows Driver Kits-WDK 7600.16385.1-Build Environments-Windows XP-x86 Checked Build Environment
运行Windows XP-x86 Checked Build Environment 进入 刚刚创建的driverTest目录
使用dos命令 cd c:/driverTest目录
执行命令 build 或者build -c 【-c表示如果已经编译过 还是重新在编译一次 】
C:\drivertest>build -c
BUILD: Compile and Link for x86
BUILD: Loading c:\winddk\7600.16385.1\build.dat...
BUILD: Computing Include file dependencies:
BUILD: Start time: Sun Apr 17 12:45:50 2016
BUILD: Examining c:\drivertest directory for files to compile.
c:\drivertest Auto-cleaning queue for 'root:x86chk' (1 of 1 file(s) removed)
Invalidating OACR warning log for 'root:x86chk'
BUILD: Saving c:\winddk\7600.16385.1\build.dat...
BUILD: Compiling and Linking c:\drivertest directory
Configuring OACR for 'root:x86chk' - <OACR on>
_NT_TARGET_VERSION SET TO WINXP
Compiling - test.c
Linking Executable - sys\i386\wpdhelloworlddriver.sys
BUILD: Finish time: Sun Apr 17 12:45:51 2016
BUILD: Done
3 files compiled
1 executable built
编译后 查看目录 下 存在一个 /sys/i386/test.sys
相关文章推荐
- 每天学习一点Scala04_变量
- 虚函数表是在编译的时候还是运行的时候产生的
- MIPS寄存器详解
- 最长01子串
- chd校内选拔赛题目+题解
- Java:输入输出流
- codeforce 617E XOR and Favorite Number 莫队算法
- 用DPM(Deformable Part Model,voc-release3.1)算法在INRIA数据集上训练自己的人体检测模型
- 我读过的最好的epoll讲解--转自”知乎“
- java Executor框架
- IP地址转为整形数组
- JS对象详解
- 不用加减乘除实现加法
- 有关可变形部件模型(Deformable Part Model)的一些说明
- 基数排序之LSD
- IP访问伪造
- Git安装和多ssh key 管理
- 用初次训练的SVM+HOG分类器在负样本原图上检测HardExample
- 操作系统开发系列—12.a.从Loader到内核 ●
- Map容器——HashMap及常用API,及put,get方法解析,哈希码的产生和使用