Windows驱动设计
Augusdi
让时间验证一切,让时间验证我。感谢大家的无私帮助,我愿以同样的态度回馈我热情的朋友,用我们的热忱开创美好未来!
展开
-
Window 消息大全使用详解
Window 消息大全使用详解消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一 个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中 包含了单击鼠标时的坐标。这个记录类型叫做TMsg,它在Windows单元中是这转载 2014-03-01 22:05:03 · 1857 阅读 · 0 评论 -
让您的驱动程序一次处理多个 I/O 请求
让您的驱动程序一次处理多个 I/O 请求<br />您的用户模式应用程序向您的驱动程序发送大量 I/O 请求,但是驱动程序坚持一次处理一个请求。问题是什么?<br />您可能认为驱动程序以一些模糊的方式发生阻塞或者应用程序中需要更多线程,但是解决方法经常简单得多:确保您的应用程序已经打开用于重叠 I/O 的设备。否则,I/O 管理器通过同步(使用文件对象中的锁)在调度 IRP 之前将 I/O 请求序列化。即使您的应用程序使用多个线程,一次(每个文件句柄)也只有一个请求可以通过。<br />在应用程序中启用重原创 2011-03-05 21:56:00 · 2917 阅读 · 0 评论 -
Getting your driver to handle more than one I/O request
Getting your driver to handle more than one I/O request at a time<br />Updated: May 25, 2007<br />Your user-mode application is sending your driver lots of I/O requests, but the driver insists on handling the requests one at a time. What's the problem?<br原创 2011-03-05 21:48:00 · 1913 阅读 · 0 评论 -
设备驱动程序通知应用程序的几种方法
设备驱动程序通知应用程序的几种方法<br />http://www.xxlinux.com/linux/embed/OS/linux/2009-06-09/2520.html<br />作 者:■ 北京航空航天大学 周正干 李和平 安振刚<br /><br />摘要:在目前流行的Windows操作系统中,设备驱动程序是操纵硬件的最底层软件接口。为了共享在设备驱动程序设计过程中的经验,给出设备驱动程序通知应用程序的5种方法,详细说明每种方法的原理和实现过程,并给出实现的部分核心代码。希望能够给设备驱动程序的设转载 2011-03-05 22:14:00 · 2260 阅读 · 0 评论 -
最新AMI BIOS设置手册
<br />最新AMI BIOS设置手册BIOS是英文Basic Input/Output System(基本输入/输出系统)的缩写,其程序储存在主板上的 EPROM或Flash ROM 内,作用是测试装在主板上的部件能否正常工作,并提供驱动程序接口,设定系统相关配备的组态。当你的系统配件与原CMOS参数不符合时,或CMOS参数遗失时,或系统不稳定时,就需要进入BIOS设定程序,以重新配置正确的系统组态。<br />进入AMI BIOS设定程序<br /> 1.打开系统电源或重新启动系统,显示器屏幕将出现原创 2011-01-20 09:18:00 · 6550 阅读 · 0 评论 -
AWARD BIOS设置手册
<br />AWARD BIOS设置手册<br /> AWARD BIOS是目前兼容机中应用较为广泛的一种BIOS,但是由于里面的信息全为英文且需要用户对于相关专业知识的理解相对深入,所以有些用户设置起来感到困难很大。如果这些有关信息设置不当的话,将会大大影响整台电脑主机的性能。下面介绍一下AWARD BIOS中的有关设置选项的含义和设置方法,AWARD BIOS的主菜单主要有以下几个菜单项:<br />Standard CMOS Setup(标准CMOS设定):<br />在本菜单中,用户可以修改日期、原创 2011-01-20 09:20:00 · 2085 阅读 · 0 评论 -
INF实例详解
<br />INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。在INF文件中指明了硬件驱动该如何安装到系统中,源文件在哪里、安装到哪一个文件夹中、怎样在注册表中加入自身相关信息等等。 安装监视器、调制解调器和打印机等设备所需的驱动程序,都是通过INF文件,正是INF的功劳才使得Windows可以找到这些硬件设备的驱动并正确安装。当我们通过“开始→控制面板→添加转载 2011-01-10 10:29:00 · 3201 阅读 · 0 评论 -
IRP说明
<br />近来学习Windows内核方面的东西,觉得对I/O处理过程没有一个总体的概念。于是,就花了一点时间搜集了很多这方面的资料并自己总结了一下。下面说说我自己的理解。<br /> 在Windows内核中的I/O请求基本上是通过 I/O Request Packet (IRP)完成的。下面,我就来详细地说下IRP请求是怎么样一步一步完成的。<br /> 首先,我们就需要知道IRP是怎么产生。IRP是由I/O管理器发出的,I/O管理器是用户态与内核态之间的桥梁,当用户态进程发出I/O请求时,I/O管理器就转载 2011-01-05 16:35:00 · 2773 阅读 · 0 评论 -
Inf文件
<br />INF是Device INFormation File的英文缩写,是Microsoft公司为硬件设备制造商发布其驱动程序推出的一种文件格式,INF文件中包含硬件设备的信息或脚本以控制硬件操作。 INFI的功能 1 复制文件、删除文件、或重新命名文件。<br />2 新增或删除注册表(Registry)中的项目。<br />3 修改重要的系统设置文件(如 Autoexec.bat、Config.sys、.INI 等) INF的规则 INF是纯文本文件,它是分节的,这点和INI文件类似,每节以"[]转载 2011-01-05 16:33:00 · 1960 阅读 · 0 评论 -
WS2008+DDK+DDKWizard,Win2003配置方案
WS2008+DDK+DDKWizard,Win2003配置方案<br />经过一上午的在网上摸索研究,总结一下配置的几个关键地方<br />(1)安装WindowsDDK,我用的版本是6001.18002,路径是D:/WinDDK/6001.18002<br />执行win2003 x86 checked build environment<br /><br /><br />(2)在http://ddkwizard.assarbad.net/ 下载DDKWizard,安装<br />(3)把ddkb转载 2010-12-13 13:42:00 · 1991 阅读 · 0 评论 -
必须掌握的八个【cmd 命令行】
<br />一,ping <br /><br /> 它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看帮助吧,在DOS窗口中键入:ping /? 回车,。所示的帮助画面。在此,我转载 2010-06-21 16:13:00 · 1741 阅读 · 0 评论 -
四种进程或线程同步互斥的控制方法
<br /> //事件数组 HANDLE global_Events[]; // 共享资源 char global_Array[56]; void InitializeArray() { for(int i = 0;i<56;i++) { global_Array[i]=I; } } UINT Global_ThreadOne(LPVOID pParam) { C转载 2010-06-21 15:19:00 · 1932 阅读 · 0 评论 -
BoundsChecker使用说明
目录目录.... 1一、 BoundsChecker 简介.... 2二、 安装环境.... 2三、 BoundsChecker两种工作模式.... 33.1 ActiveCheck.. 33.2 FinalCheck.. 3四、 特性和优点.... 5五、 检测示例.... 65.1 内存泄漏检测示例....原创 2010-05-25 10:14:00 · 9172 阅读 · 0 评论 -
DirectShow 配置环境
<br />从网上下了DirectX 9.0 SDK,运行里面的的BaseClasses的时候出现了N多错误,在网上找到了相应的方法。就是上面那个链接啦,哈哈~~<br /> 1. 编译基类源代码<br /> BaseClasses编译生成<br />路径:<DXSDK>/Samples/C++/DirectShow/BaseClasses环境:VS2005为了正确编译,需修改以下文件:(a) ctlutil.hD:/DXSDK/Samples/C++/DirectShow/BaseClasses/转载 2010-06-28 17:42:00 · 1891 阅读 · 0 评论 -
十招教你学会软件破解
十招教你学会软件破解 下面谈到了一些在学习解密过程中经常遇到的问题,本人根据自己的经验简单给大家谈一谈。这些问题对于初学者来说常常是很需要搞明白的,根据我自己的学习经历,如果你直接照着很多破解教程去学习的话,多半都会把自己搞得满头的雾水,因为有很多的概念要么自己不是很清楚,要么根本就不知道是怎么一回事,所以希望通过下面的讨论给大家一定的帮助: 1. 断点:所谓断点就是程序被中断的地方,这转载 2010-03-14 15:49:00 · 4588 阅读 · 2 评论 -
Microsoft Visual C++ 6.0 各类工程配置说明(三)
小结:1.MFC的使用方式对默认情况选择的Run-time library的影响(以Debug版本为例):Not Using MFC //MLd:Debug Single-Threaded(静态连接LIBCD.LIB库)Use MFC in a Shared DLL //MDd: Debug Mul转载 2010-01-18 17:47:00 · 1965 阅读 · 0 评论 -
Microsoft Visual C++ 6.0 各类工程配置说明(二)
(4.2) Use MFC in a Shared DLL预定义:与(4.1)相比,增加了_WINDLL,_AFXDLL的定义编译参数:没有太大区别。连接参数:/nologo/dll /incremental:yes /pdb:"Debug/Win32DllDemo.pdb"/debug/machine:I38转载 2010-01-18 17:46:00 · 2593 阅读 · 0 评论 -
Syser Loader BUG 完善
<br />经过1各月的研究终于把Syser Loader BUG 完善了 支持 4核 不再退出 CTRL+F12 完美调用 不再退出<br /> PS:Syser Loader 作者是个狡猾狡猾的家伙下面列举几大罪状<br />1.压根不支持双核 三核 四核<br />2.传说中测试版注册成为正式版后能解决1的问题 其实问题一样不可用<br />3.多核电脑载入后按CTRL+F12 自动退出<br /><br />针对上面3个问题解决办法是<br />1.修改驱动 在CPU 支持片段那里修改CPU代码原创 2011-02-22 10:04:00 · 2706 阅读 · 0 评论 -
通往WinDbg的捷径(一)
标 题: 翻译:通往WinDbg的捷径(一)作 者: arhat时 间: 2006-04-13,21:11链 接:http://bbs.pediy.com/showthread.php?t=24077通往WinDbg的捷径(一)原文:http://www.原创 2011-07-25 09:31:54 · 1862 阅读 · 0 评论 -
玩玩DriverWorks(三)-串行化IO请求
周末实在不太想写我的数据库程序,又花了一个小时练习了一下DriverWorks里的排队IO请求模型,其实这和DDK中的模型基本上是一样的,因为参考了Programming the Microsoft Windows Driver Model里的一些代码,并且少看了DriverWorks关于排队IO的一句话,我还得到了一个BSOD,不过这个BSOD让我注意到了帮助文档上我没有注意到的地方,呵呵!废话转载 2009-06-06 16:33:00 · 1570 阅读 · 0 评论 -
玩玩DriverWorks(一)-简单范例
今天好不容易晚上抽空写点东西,好累啊!先整这些当是笔记了1.学会使用向导 很多人不喜欢向导,可是一个从应用开发转做驱动开发的人可能更容易接受这种方式,但在今天我不打算使用过多的向导,而是手工写驱动代码,只是使用了DriverWorks的包装类,使用MFC可以反过来使我的SDK技术长进不少,那同样的使用DriverWorks我相信同样可以使我们的DDK技术得到锻炼. 首先使用DDK Build转载 2009-06-06 16:22:00 · 2178 阅读 · 1 评论 -
玩玩DriverWorks(四)-系统线程和同步对象
1.系统线程和KSystemThread类在DriverWorks包装类库中有一个叫做KSystemThread的类,可以用来创建线程,线程函数可以是标准的驱动系统线程例程函数,也可以是任意对象的成员函数.感觉用起来还是比较舒服的.下面分别说明.1.1 使用标准线程例程创建系统线程KSystemThread thdobj;......VOID ThreadProc(PVOID Context){转载 2009-06-06 16:35:00 · 1408 阅读 · 0 评论 -
玩玩DriverWorks(二)-读写数据
这两天怎么老想玩DriverWorks!!!今天抽了一个小时写个小驱动练习一下KIrp和KMemory配合访问三种IO方式中的数据.KIrp是对IRP请求对象的包装,它有很多成员函数用于操作IRP结构.1.Buffered IO:在Buffered IO方式中IO管理器会分配一块堆内存然后把用户态缓冲区数据copy进来再传给驱动程序,而输出时IO管理器会把堆内存中的数据copy回用户态缓冲区.我们转载 2009-06-06 16:31:00 · 1659 阅读 · 1 评论 -
WDM驱动设计系统环境设置
系统环境设置在编写USB设备驱动程序时,开发人员需要使用下列软件: 1、 Microsoft Visual C++。 2、 SDK(Software Development Kit,软件开发工具包),它是可选的。 3、 DDK(Driver Development Kit,驱动开发工具包)。 Visual C++是包含标准编译工具(编译程序和连接程序)的集成开发环境,通过正确设置,其可以用来建立内原创 2009-05-15 21:12:00 · 2792 阅读 · 2 评论 -
Windows 7核心图形架构细致分析
深度解读 - Windows 7核心图形架构细致分析编辑:马志文时间: 2009-12-29连接:http://technet.microsoft.com/zh-cn/library/ee921514.aspx如现在大家所想的那样, Windows7 其实是 Windows Vista 的改进版。 Windows 7 在 Windows Vista 的基础上进行了大量的完善工作,也加入了不少新特性转载 2013-06-06 16:23:45 · 2700 阅读 · 0 评论 -
Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建
原文链接:http://www.cppblog.com/guojingjia2006/archive/2011/03/19/142211.htmlWINDOWS 7 配置驱动开发环境(wdk7.60)1. 安装VS2010,WDK7.60(GRMWDK_EN_7600_1)2. 新建VC 控制台项目(选择为空项目)3. 新建项目配置“driver” ,点击下拉按钮-点击(配置管理器)输入名称转载 2013-06-01 20:23:27 · 22094 阅读 · 7 评论 -
在Visual Studio 6.0集成环境中开发设备驱动程序的方法
以前一直进行用Vc进行开发,但是没有接触过驱动开发,最近由于公司工作需要,要进行驱动开发,才发现DDK提供的编译环境是命令行的,及其难用,于是就想到用Vc集成环境来进行驱动程序开发,浏览了一些前辈的文章,都觉得很杂乱,有点看不懂(可能是水平不够),于是 自己研究了一下。 通过总结前人的经验和自己的调试,大概的DDK编译过程先设置编译环境,就是Free Build Environment和Chec转载 2013-03-16 00:19:40 · 2003 阅读 · 0 评论 -
使用VC6.0在32位平台上开发64位程序
使用VC6.0在32位平台上开发64位程序2008年01月05日 下午 12:53要求:Microsoft Platform SDK 2001 年 11 月版或更高版本Visual C++ 6.0使用 Visual C++ 6.0 IDE 生成 64 位应用程序:设置 64 位内部版本环境变量:通过双击SDK文件夹下面的Setup.Exe安装Microsoft Platform SDK 到硬盘任意转载 2013-03-16 00:32:59 · 2231 阅读 · 0 评论 -
DDK常用函数与数据结构描述
DDK常用函数与数据结构描述 Support Function and Data Structure Reference ASSERT ASSERTMSG CM_FULL_RESOURCE_DESCRIPTOR CM_PARTIAL_RESOURCE_DESCRIPTOR CM_PARTIAL_RESOURCE_LIST CM_RESOURCE_LIST CONFIGURATION_INFORMA原创 2012-10-25 17:02:34 · 2895 阅读 · 0 评论 -
The Windows Driver Model Simplifies Management of Device Driver I/O Requests(WDM对设备驱动I/O请求管理的简化)
The Windows Driver Model Simplifies Management of Device Driver I/O Requests (WDM对设备驱动I/O请求管理的简化)Ervin Peretz 译者:chuajiang这个只是本人在学习WDM驱动开发时候顺便翻译的,主要是为了让自己能够对WDM中的IRPs有个深刻的了解,同时希望能够对看到这篇文章的你有用,这个转载 2012-05-10 21:43:09 · 2122 阅读 · 0 评论 -
Windows驱动设计几张截图
原创 2012-05-10 13:13:51 · 1960 阅读 · 0 评论 -
Windows内核
原创 2012-05-10 15:05:14 · 1861 阅读 · 0 评论 -
开始进行 64 位 Windows 系统编程之前需要了解的所有信息
本文讨论:•64 位版本 Windows 的背景信息•适当地利用 x64 体系结构•使用 Visual C++ 2005 进行 x64 开发•针对 x64 版本的调试技术本文使用以下技术:Windows、Win64、Visual Studio 2005本页内容x64 操作系统适当利用 x64使用 Visual C++ 进行 x64 开发使代码与 Win64 兼容调试关于托管代码小结使用 Windo转载 2012-01-19 16:11:44 · 2847 阅读 · 0 评论 -
将程序移植到64位Windows
雷立辉 整理简介:本文对如何将32位Windows程序平滑的支持和过渡到64位Windows操作系统做出了一个简单而系统的介绍。包括对于64位操作系统的版本,编程模型,一些移植原则甚至包括对驱动程序的移植原则的介绍。作者介绍:系统分析员,现在在北京工作。作者的blog:http://goooder.blogchina.com.前言:或许大家还对32位的CPU及操作系统使用还是觉得非常的合乎日常需要转载 2012-01-19 16:06:53 · 3675 阅读 · 0 评论 -
使用WinDbg调试程序
什么是WinDBG? WinDbg是微软开发的免费源码级调试工具。Windbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。由于大部分程序员不需要做Kernel模式调试, 我在这篇文章中不会介绍Kernel模式调试。Kernel模式调试对学习Windows转载 2011-07-25 09:37:13 · 2255 阅读 · 3 评论 -
Microsoft Visual C++ 6.0 各类工程配置说明(一)
1. 基于对话框(/单文档/多文档)的MFC程序#include // MFC support for Internet Explorer 4 Common#include // MFC core and standard components#incl转载 2010-01-18 17:41:00 · 2622 阅读 · 0 评论 -
在VC下把exe文件转换成DLL文件
在VC下把exe文件转换成DLL文件 说到这里的方法,我们不得不说一下VC是里面生成的各个文件的作用:.dsp 工程文件,文本格式,不可丢失或损坏 .dsw 工作区文件,丢失或损坏时,可点击.dsp文件打开工程,.dsw文件自动重建 .clw ClassWizard信息文件,ini格式,ClassWizard出问题时可删除它再重建 .ma转载 2010-01-18 12:26:00 · 6985 阅读 · 3 评论 -
一个典型的Windows 2000 INF文件
一个典型的Windows 2000 INF文件[Version]Signature=”$Windows NT$”Class=USBClassGUID={36FC9E60-C465-11CF-8056-444553540000}Provider=%YsuLyw%LayoutFile=layout.infDriverVer=12/12/2001,1.0.1.0原创 2009-05-16 21:37:00 · 2121 阅读 · 0 评论 -
设备驱动程序INF文件——INF文件的节
INF文件的节 INF文件是一个文本文件,由许多按层次结构排列的节组成,他们以方括号中的节名称开始,如[Version]、[Manufacturer]等,后面是改接所含有的各个项,如Signature、DriverVer等。节中各项的基本定义格式为entry=value[,value…] 其中,“entry”标示项名称,“value”标示该想的取值。节名和项名称原创 2009-05-16 15:11:00 · 5199 阅读 · 2 评论 -
NMAKE
NMAKENMAKE.EXE是一个32b的Microsoft程序维护工具,他根据其描述文件中的命令来构造一个工程,调用语法如下:NMAKE [options][/f filename][/x filename][macros][targets][@commandfile]其中,“targets”参数指明NMAKE的构造目标,如果未使用targets,则NMAKE将默认其构造的第一个目标原创 2009-05-16 09:28:00 · 3098 阅读 · 0 评论