驱动
墨子说书
123
展开
-
Windows XP + VC 6.0 + WinXP_DDK + DriverStudio 3.2
Windows XP + VC 6.0 + WinXP_DDK + DriverStudio 3.21·前言开发windows内核驱动程序是一个非常具有挑战性的工作,你得忍耐调试过程中操作系统 不断蓝屏、不断崩溃的噩梦,所以强烈建议你采用虚拟机做开发平台,这样即使把整个系统都搞蹦了,大不了从新装过虚拟机而已。那么搭建一个完整的 Windows驱动开发环境是每个人必须迈过的第一道坎。本文将具转载 2013-06-14 14:11:34 · 1375 阅读 · 0 评论 -
vc编程实现sys文件的安装
#include #include #include #include #define DRIVER_NAME "123467"#define DRIVER_PATH "..\\HelloDDK.sys"//装载NT驱动程序BOOL LoadNTDriver(char* lpszDriverName,char* lpszDriverPath){转载 2013-07-16 10:14:05 · 3001 阅读 · 0 评论 -
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int,解决办法在VS2005中生成时出错:error C4430: missing type specifier - int assumed. Note: C++ does not support default-原创 2013-08-06 16:05:01 · 1883 阅读 · 0 评论 -
error LNK2001: unresolved external symbol "const type_info::`vftable'"
error LNK2001: unresolved external symbol "const type_info::`vftable'" (??_7type_info@@6B@)1>HNPCIdriverDriver.obj : error LNK2001: unresolved external symbol "const type_info::`vftable'" (??_7type_原创 2013-08-06 16:09:34 · 4662 阅读 · 0 评论 -
Windows操作HID设备的API
1、头文件包含,库文件链接 在VC中开发HID应用程序时,需要包含setupapi.h和hidsdi.h,包含方式必须为extern "C",如下所示:extern "C" {// Declare the C libraries used#include "setupapi.h" // Must link in setupapi.lib#include "hidsdi.h"转载 2013-11-18 14:13:54 · 3896 阅读 · 0 评论 -
VS2005+WINDDK+Driver Studio 3.2个人总结
通过在网上搜索大量的资料,终于把环境搭建起来。对于我这样的驱动新手来说,理应把高手们的东西整理并总结下,方便以后的初学者。这三个软件的安装顺序没有具体规定,也有高手推荐的顺序,我自己也是重复安装卸载,个人的顺序是:VS2005、DriverStudio3.2、Windows XP DDK。个人觉得后面两个的安装顺序关系不大。1.VS2005本人安装的英文版,可以在网上下载。2.Driv原创 2013-06-19 15:35:25 · 2387 阅读 · 0 评论 -
Windows下INF驱动安装文件内容分析
下面先贴出了一个inf文件的内容,然后进行逐句分析:; Installation inf for the Intel 82930 USB Bulk IO Test Board;; (c) Copyright 1999 Microsoft;[Version]Signature="$CHICAGO$"Class=USBClassGUID={36FC9E60-C465转载 2014-02-25 09:22:16 · 1412 阅读 · 0 评论 -
如何在VS2005中配置WINDDK
点击工具---选项,然后出现以下对话框 1、在可执行文件目录中添加: D:\WINDDK\3790.1830\BIN\X86 2、在包含文件目录添加如下路径 D:\WINDDK\3790.1830\inc\wxp D:\WINDDK\3790.1830\inc\crt (可选) D:\WINDDK\3790.1830\inc\ddk\w原创 2014-02-19 12:12:53 · 2087 阅读 · 0 评论 -
IRP_MN_START_DEVICE分发例程中的前进和等待IRP总结
当PnP管理器检测到硬件时,它首先参考注册表以了解有哪些过滤器驱动程序将管理该硬件。如果必要(某些驱动程序可能因为其它硬件的需要已经被系统装入)它将装入这些驱动程序,并调用它们的AddDevice函数。最后AddDevice函数创建设备对象并连入设备堆栈。此后,PnP管理器将为所有设备驱动程序分配I/O资源。 一旦资源分配确定,PnP管理器通过向每个设备发送一个带IRP_MN_S转载 2014-02-20 13:35:38 · 1253 阅读 · 0 评论 -
VC++ 安装驱动 详细解释
最近用C++写了一款类似android手机助手的产品,其中的一个模块功能是检测与监测android设备的设备ID,根据设备ID检索驱动并进行安装。因此搜索了好多关于驱动安装的资料,现整理如下:驱动分为WDM式和NT式两种驱动,我所理解的两者区别:1. WDM由.inf文件加载,NT通过服务手动加载2. WDM支持即插即用,NT不支持即插即用3. WDM通过注册表指定挂载那个驱动,NT可通过寻找不同转载 2014-05-29 14:50:25 · 1477 阅读 · 0 评论 -
VC++ 安装驱动 源码
WDM式驱动源码:#include "stdafx.h"#include // Make all functions UNICODE safe.#include // for the API UpdateDriverForPlugAndPlayDevices().#include // for SetupDiXxx functions.#include "inst转载 2014-05-29 15:20:48 · 1662 阅读 · 0 评论 -
让VS2005也可以编译驱动
1、去http://ddkwizard.assarbad.net/ 下载ddkwizard,ddkbuild_bat.zip,ddkbuild_cmd.zip,这两个也要下载2、拷贝 DDKBUILD.bat 和 DDKBUILD.cmd 到DDK安装根目录,如我的是G:\WinDDK,这里要注意是根目录3、添加环境变量,我的电脑→属性→高级→环境变量→在下图中找到path添加环境转载 2013-06-19 15:14:36 · 893 阅读 · 0 评论 -
CTL_CODE定义中Method的说明
我在上一篇中说明CTL_CODE的时候,其中CTL_CODE定义中有一个Method域,该域的功能意义是定义用于与在驱动程序中获取应用程序数据缓冲区的地址方式。如果你看了我前边的文章,你可以看到在DeviceIoControl的使用说明中对DeviceIoControl参数进行描述中关于lpInBuffer 和lpOutBuffer 的描述。简单的说,Method域就是定义了lpInBuffe转载 2013-06-26 10:43:35 · 865 阅读 · 0 评论 -
利用DriverStudio3.2开发USB驱动程序
利用DriverStudio开发驱动程序比直接调用DDK开发起来要方便快捷的多。就像利用MFC开发一般的桌面程序一样,而非选择SDK进行程序的编写。换句话说,DriverStudio和DDK的关系就像MFC和SDK的关系一样,DriverStudio只是对DDK中的各种结构、函数进行了封装,方便开发人员进行底层函数的调用,如DriverStudio的Kirp类就是对DDK中IRP所有操作的封装而已转载 2013-06-14 14:05:18 · 1146 阅读 · 0 评论 -
VS2005+WDK+DriverStudio
配置一个好的开发环境是学习驱动开发的第一步,我在这里介绍一下VS2005+DDK2003+DriverStudio3.2配置过程,我在这里给大家一个step by step的。好了,废话不多说了,让我们开始吧!step1:就从下载软件开始吧,VS2005 DDK2003 DriverStudio3.2这几个就不用说了,迅雷上都有下载。 还有两个补丁,分别是:下载ds3.2.1补丁,转载 2013-06-14 14:13:18 · 1700 阅读 · 0 评论 -
DeviceIoControl
应用程序和驱动程序的通信过程是:应用程序使用CreateFile函数打开设备,然后用DeviceIoControl与驱动程序进行通信,包括读和写两种操作。还可以用ReadFile读数据用WriteFile写数据。操作完毕时用CloseHandle关闭设备。我们比较常用的就是用DeviceIoControl对设备进行读写操作。先看看DeviceIoControl是怎么定义的:BOOL Devic转载 2013-06-14 16:20:29 · 900 阅读 · 0 评论 -
DriverStudio开发PCI设备DMA数据传输
DriverWizard向导可以创建基本的wDM驱动程序框架,包括总线类型,地址空间,中断源,DMA资源,以及IOCTL(i/o控制代码)的定义等等。详细情况可参看DriverStudio的帮助文档,以下主要介绍如何用DriverWorks编写DMA方式的驱动程序。 DriverWorks关于DMA操作。封装了三个类:KDmaAdapter, KDmaTransfer和KCommo转载 2013-06-14 16:40:34 · 1720 阅读 · 0 评论 -
使用DDKWirzard+VS2005开发驱动
DDKWirzard是Oliver Schneider写的一个驱动开发辅助插件,支持windows2000 XP 2003,VS.net 2003 VS2005等。前提是你安装了VS和DDK或IFS具体使用方法:1.下载DDKWirzard,网址http://ddkwizard.assarbad.net/ddkwizard_setup.exeddkbuild_bat.zip转载 2013-06-19 09:31:14 · 1006 阅读 · 0 评论 -
VS2005+WINDDK+Driver Studio 3.2编译出第一个测试驱动程序
搭建好windows设备驱动程序的开发环境,终于能在VS2005中编译出第一个测试驱动程序了,现在把安装和编译的过程中遇到的一些细节问题总结一下。 1. WINDD下载的是2600版本,不知道跟xp sp1 DDK和xp sp2 DDK有什么区别,找后面两个版本的DDK下载地址找了好久都没找到,驱运之家有下载,但是要高级会员才能下,要Money。电驴里搜到一个xp sp转载 2013-06-19 11:17:40 · 1832 阅读 · 0 评论 -
Visual Studio2005 Windows XP DDK DriverStudio3.2 安装的一些说明
搭建开发环境是开发驱动的第一步,这个搭建的过程还是有点小折腾的,在这儿我遇到的问题记下来,免得日后忘记,也希望可以帮到一些人。 其实问题基本都处在DriverStudio3.2的安装和编译上。下面就开始了: 这三个软件的安装顺序是:VS2005、Windows XP DDK、DriverStudio3.2。这是推荐的安装顺序。 首先,上网找Windows XP DDK安转载 2013-06-19 13:30:36 · 1061 阅读 · 0 评论 -
关于Driver Studio 3.2 的安装详解
关于Driver Studio 3.2 的安装详解经过对VC、WINDDK、Driver Studio这三个软件反复的安装,终于可以使Driver Studio能在VC环境下正常编译了。俗话说久病成医,遇到的问题多了,自然就有了很多解决问题的方法,现在拿出来和大家一起分享一下。1、分别安装VC、WINDDK、Driver Studio,为:VC-〉WINDDK-〉 Driver Studi转载 2013-06-19 15:38:44 · 1877 阅读 · 0 评论 -
softice调试驱动程序
以Check方式编译驱动程序, 然后用SoftICE的 Symbol Loader 将编译生成的驱动程序 .sys 文件, 然后 Translate 成 .nms ,然后在Symbol Loader 中的 symbols 中加入,就可以实现源码级的调试。 具体, 转换生成Symbols Symbol Loader -> File -> Open Module -> 选中驱动转载 2013-06-20 18:27:24 · 1068 阅读 · 0 评论 -
CTL_CODE说明
本文来自:http://msdn.microsoft.com/en-us/library/ms904001.aspx我们在说DeviceIoControl函数时其第二个参数dwIoControlCode就是由CTL_CODE宏定义的,下边我们可以了解一下CTL_CODE的内容。CTL_CODE:用于创建一个唯一的32位系统I/O控制代码,这个控制代码包括4部分组成:DeviceTy转载 2013-06-26 10:42:27 · 938 阅读 · 0 评论 -
InstallShield
InstallShield 的功能相当强大,能够对系统和安装需要提供丰富的函数支持,有足够灵活的界面控制支持,而且其脚本语言特点与Visual C++的代码极其相似,非常适合使用Visual C++的开发者使用。---- 但是,在某些情况下,InstallShield不能提供能完成某种特殊功能的相应函数,这时需要我们自己开发出能够完成此功能的函数,然后放在InstallShield中调用,转载 2014-05-30 11:14:13 · 1352 阅读 · 0 评论