Wdk7600 驱动开发环境配置
一丶简介
在X64纵横的年代.很多人都直接使用VS WDK配套的环境去开发驱动了. 这样是好事.说明驱动开发更快捷了.但是你开发的驱动是不能兼容所有系统的. 如XP 很多人说XP已经淘汰了.兼容不兼容无所谓了.
这样也可以.说明你没有需求.没有需求是在XP下运行你的驱动. 这里也简单说下. WDK7600配置好的环境.编译出的驱动. 是可以在xp - win10下跑的.也能更加兼容.
二丶WDK7600的下载与安装.
2.1 WDK下载
去MSDN https://docs.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads 去下载即可.
拖动到最下方
或者去我的百度网盘下载: 链接:https://pan.baidu.com/s/16ZVDcc_dTq0QzDoKicoX8g 提取码:xtl3 复制这段内容后打开百度网盘手机App,操作更方便哦
2.2 WDK安装
WDK7600 是一个ISO文件,win10下直接安装即可. 在win7下你需要下载一个虚拟镜像的软件.进行安装.
我的度盘下载
链接:https://pan.baidu.com/s/16BvhbmaJTQZ0HFv6dDVKCQ 提取码:e757
然后根据提示一步一步安装即可.
三丶SOURCES 文件的解析
3.1 SOURCES
在WDK7600的年代下.开发驱动都是 找个编辑器写代码.然后利用WDK编译器进行编译的.
而SOURCES则是指明你编译的驱动的各种信息.
如下:
代码语言:javascript复制TARGETNAME=你编译之后驱动的名字
TARGETPATH=你编译之后驱动存放在哪里的路径
TARGETTYPE=指明你编译的驱动的类型
INCLUDES=XXXinc
PRECOMPILED_INCLUDE=precomp.h
DRIVERTYPE=指明了驱动类型
TARGETLIBS=指明你编译的代码用所用的LIB库的路径
MSC_WARNING_LEVEL=指明代码的严谨程度,4是警告视为错误
AMD64_SOURCES=指明X64下的asm文件
SOURCES=指明你的驱动源代码
示例如下:
代码语言:javascript复制TARGETNAME=FistDriver
TARGETPATH=release
TARGETTYPE=DRIVER
INCLUDES=XXXinc
PRECOMPILED_INCLUDE=precomp.h
DRIVERTYPE=FS
TARGETLIBS==$(TARGETLIBS)
$(DDK_LIB_PATH)abc.lib
MSC_WARNING_LEVEL=/W4/WX
AMD64_SOURCES=a.asm
b.asm
SOURCES=a.c
b.c
上面的意思如下:
1.指明我编译之后,驱动的名字为 FristDriver
2.指明了我编译之后把驱动放在Debug目录下
3.指明了我编译的类型是驱动类型
4.指明了我要包含的inc文件
5.指明了我要编译的.h文件
6.指明了驱动类型
7.指令了我要把abc.lib编译到驱动中
8.指明了警告等级为4级,警告视为错误.
9.因为x64下代码中不能内联汇编了.所以必须提供单独的asm文件.这个字段是可以指定单独的文件
10.指明了我要编译的驱动代码有 main.c 1.c 2.c 这里我用 分割 多个文件就用多个分割
以上是列出的字段. 其实编写简单的子段就可以编译驱动.其余的可以省略
如下:
代码语言:javascript复制TARGETNAME=Frist
TARGETPATH=Release
TARGETTYPE=DRIVER
SOURCES=FristHello.c
关于字段的详解了解,可以参考如下文章.
https://www.cnblogs.com/spinsoft/archive/2012/06/16/2551883.html
四丶MakeFile
对于驱动来说,一个要提供一个MakeFile文件. 关于MarkFile 网络上也很多讲的.但是编译驱动一般给一个就行.是不变的.
代码语言:javascript复制!IF 0
Copyright (C) Microsoft Corporation, 1999 - 2002
Module Name:
makefile.
Notes:
DO NOT EDIT THIS FILE!!! Edit .sources. if you want to add a new source
file to this component. This file merely indirects to the real make file
that is shared by all the components of Windows NT (DDK)
!ENDIF
!INCLUDE $(NTMAKEENV)makefile.def
五丶WDK编译程序
安装好的WDK都在菜单有一个命令行. 只需要打开命令行键入命令即可.
界面如下:
我们编写的平台一般是x86与x64平台. 所以不要选择 ia64
而两个平台也各有一个 debug编译模式与 release模式. (checked 是Debug模式) (Free 是 Release模式) 根据自己的选择即可
命令如下:
切换到你的源码目录 输入 bld 编译所有的源码文件
六丶 win7下 DebugView不显示调试信息
在xp下.我们想看驱动里面的DbgPrintf输出的信息.直接打开DebugView即可.
在win7及以上需要管理员启动.并且选择监视核心输出. 但是这样还没发输出.那么我们就需要修改注册表.
代码语言:javascript复制Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerDebug Print Filter]
"DEFAULT"=dword:0000000f
将以上信息复制到文件.后缀名改为reg 运行即可.