WDK
乄失忆丶雨
要想立于不败之地,就得不断学习和努力!
展开
-
VC6.0 +WDK 开发驱动的环境配置
1.安装好VC6和DWK,先后顺序无关。 从开始菜单找到WDK的程序目录,进入“Windows XP Checked Build Environment”,输入命令"build",此时WDK将会把自己进行编译,大约需要1分钟。2.VC6设置Include/Lib/Executable目录。 设置为自己需要编译的平台的各个目录即可, Include要确保找到ntddk.h转载 2017-01-09 11:08:57 · 372 阅读 · 0 评论 -
在驱动设计的时候出现的error C2509
在驱动设计的时候出现的error C2509可能就是在function.h文件中没定义相应的宏;function.h是程序员将要重载的虚函数的说明。DRIVER_FUNCTION_XXXX对应IRP_MJ_XXXX。比如:DRIVER_FUNCTION_READ 对应着IRP_MJ_READ。此处:#define DRIVER_FUNCTION_STARTIO //对应原创 2017-01-18 17:15:36 · 555 阅读 · 0 评论 -
链接选项修改解析----驱动开发
链接选项修改解析> ntoskrnl.libNT:驱动程序需要链接此库。如果是WDM驱动程序,则需要链接wdm.lib。> /nologo:链接时不显示版权信息。> /base:"0x10000":加载驱动时,设定加载在虚拟内存中的位置。> /stack:0x400000,0x1000:设定函数使用堆栈的大小。> /entry:"DriverEntry":入口函原创 2017-02-08 17:48:11 · 248 阅读 · 0 评论 -
配置WINDOWS驱动程序的开发环境-走出第一步
开发我们自己设计的一块板子的PCI设备驱动,并给我指出了方向,具体说就是“三步走”战略:(1)入门。熟悉基于DriverStudio开发环境的设备驱动开发,同时侧面了解PCI设备驱动程序的相关知识。(2)进阶。运用纯DDK进行驱动开发,着重于学习别人的实例,并能熟练进行调试和修改。(3)实战。深入研究PCI总线标准,结合具体的电路板特性开发出一套自己的设备驱动。现在转载 2017-01-17 14:15:10 · 854 阅读 · 0 评论 -
PCI9054驱动设计开发
首先是选用开发工具。设备驱动这东东没有工具好像是没有办法做的。一年前我把自己智力估计过高,一头扎进了DDK里面,结果是按照书上做东东,做出来也不明白是什么意思。然后就搁浅了。后来用WinDriver,也没有什么概念性的提高。 现在不做不行了。可选的还有DS,这个与VC结合很好的东东,虽然别人说有这样那样的问题,但是还是有很多人在用。我想就从这里开始吧。 2003-3-1转载 2017-01-17 13:57:29 · 972 阅读 · 0 评论 -
用DDK开发的9054驱动
和S5933比较起来,开发PLX9054比较不幸,可能是第一次开发PCI的缘故吧。因为,很多PCI的例子都是对S5933,就连微软出版的《Programming the Microsoft Windows Driver Model》都提供了一个完整的S5933的例子。在这篇有关DDK的开发论文里。我将分两个例子来构建PLX9054的驱动,第一个,是对《Windows2000 设备驱动程序设计指转载 2017-01-17 13:54:09 · 493 阅读 · 0 评论 -
用VS2005+Driverstudio+DDK开发第一个PCI驱动程序(详解)
我的前面一篇文章已经总结了安装VS2005+Driverstudio+DDK来搭建环境(见http://blog.csdn.net/shejiannan/article/details/9128735)。下面再来一步一步来编写我们的第一个PCI驱动程序。(转载请指明出于shejiannan的csdn博客)1.在安装好软件后,打开VS2005,TOOL目录下会多一个Driverstudio的转载 2017-01-17 13:45:36 · 2175 阅读 · 0 评论 -
用WDK命令行CMD编译一个驱动程序时,关于环境变量的记录
当使用WDK(我这里版本WDK 7600.16385.1)命令行编译一个驱动程序时,进入到当前驱动所在的文件夹目录下,一般都有一个Sources文件,内容一般是:[plain] view plain copy TARGETNAME=UsbKbd TARGETTYPE=DRIVER DRIVERTYPE=WDM TARGETP转载 2017-01-11 16:38:35 · 1712 阅读 · 0 评论 -
Windows驱动开发如何入门
搞Windows驱动开发是一件痛苦的事情,特别是初学Windows驱动开发。有的人觉得Windows驱动开发就是把开发包WDK下载下来,然后只要掌握了C/C++语言,接下来无非就是类库调来调去,像调用MFC、QT之类的库那样,看着书和MSDN上的文档来就行了。等真正接触以后才发现根本不是那么一回事,痛苦源于以下几点:痛苦一:中文资料太少讲Windows驱动开发的,无论是中文书籍转载 2017-01-13 16:23:56 · 1131 阅读 · 0 评论 -
[Windows驱动开发](四)内存管理
一、内存管理概念1. 物理内存概念(Physical Memory Address) PC上有三条总线,分别是数据总线、地址总线和控制总线。32位CPU的寻址能力为4GB(2的32次方)个字节。用户最多可以使用4GB的真实物理内存。PC中很多设备都提供了自己的设备内存。这部分内存会映射到PC的物理内存上,也就是读写这段物理地址,其实读写的是设备内存地址,而不是物理内存地址。转载 2017-01-13 16:17:10 · 245 阅读 · 0 评论 -
[Windows驱动开发](三)基础知识——驱动例程
一、NT式驱动的基本例程1. 驱动入口函数——DriverEntry[cpp] view plain copy// 驱动程序的一般性定义 NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegistryPath);转载 2017-01-13 16:15:45 · 422 阅读 · 0 评论 -
[Windows驱动开发](二)基础知识——数据结构
本节主要介绍驱动开发的一些基础知识。 1. 驱动程序的基本组成 1.1. 最经常见到的数据结构 a. DRIVER_OBJECT驱动对象[cpp] view plain copy// WDK中对驱动对象的定义 // 每个驱动程序都会有一个唯一的驱动对象与之对应转载 2017-01-13 16:03:08 · 287 阅读 · 0 评论 -
[Windows驱动开发](一)序言
笔者学习驱动编程是从两本书入门的。它们分别是《寒江独钓——内核安全编程》和《Windows驱动开发技术详解》。两本书分别从不同的角度介绍了驱动程序的制作方法。 在我理解,驱动程序可分为两类三种: 第一类:传统型驱动 传统型驱动的特点就是所有的IRP都需要自己去处理,自己实现针对不同IRP的派发函数。其可以分为以下两种:转载 2017-01-13 16:01:06 · 195 阅读 · 0 评论 -
code_seg("INIT")
Windows规定有些虚拟内存可以交换到文件中,这类内存被称为分页内存有些虚拟内存 永远不会交换到文件中,这些内存叫非分页内存#define PAGEDCODE code_seg("PAGE"); // 分页内存,可以交换到文件中#define LOCKEDCODE code_seg(); // 非分页内存,禁止交换到文件中#define INITCODE原创 2017-01-09 13:59:27 · 547 阅读 · 0 评论 -
VC6.0 +WDK 开发驱动的环境配置---外篇
在安装完VC6和WDK以后,就开始进行环境的配置了,可结果是弄了半个上午,还是搞不定。去网上找信息,关于WDK的,多是使用VS2005或VS2008的,有的要借助于DriverStudio之类的,按上面的方法来配置自己的工程看来不行。于是就参考了别人写的VC6+DDK编译驱动的文章,终于成了,不过有些地方还是有点不一样的。在这里把不一样的地方写下来,以供大家参考。 参考:h转载 2017-01-09 13:38:03 · 426 阅读 · 0 评论 -
DriverStudio开发PCI设备DMA数据传输
DriverWizard向导可以创建基本的wDM驱动程序框架,包括总线类型,地址空间,中断源,DMA资源,以及IOCTL(i/o控制代码)的定义等等。详细情况可参看DriverStudio的帮助文档,以下主要介绍如何用DriverWorks编写DMA方式的驱动程序。 DriverWorks关于DMA操作。封装了三个类:KDmaAdapter, KDmaTransfer和KC转载 2017-02-24 10:14:54 · 692 阅读 · 0 评论