![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Windows驱动开发
文章平均质量分 69
gxfan
平平淡淡,从从容容
展开
-
总结:使用IoMarkPending的原因及原理
为了使系统吞吐量最大化,I/O管理器希望驱动程序推迟其耗时IRP的完成。驱动程序通过在某个派遣例程中调用IoMarkIrpPending函数并返回STATUS_PENDING来表示完成操作被推迟。(注意:以下讨论未加说明均指在操作被推迟情况下)I/O管理器的原始调用者通常希望在继续执行之前等待操作完成,所以I/O管理器在处理推迟完成时有下面类似的逻辑(不代表真正的Microsoft源代码原创 2008-07-28 11:04:00 · 4025 阅读 · 1 评论 -
Windows DDK中经典的宏——CONTAINING_RECORD
在windows ddk中提供了一个经典的宏,其定义如下:#define CONTAININT_RECORD(address, type, field) / ((type*)((PCHAR)(address) - (PCHAR)(&((type*)0)->field)))这个宏用于取得内存中任何结构体的首地址,要提供的参数是:结构体中某个成员(field)的地址addres原创 2008-09-17 20:47:00 · 5945 阅读 · 2 评论 -
卷的挂载过程
卷的挂载过程原文:The volume mount process is typically triggered by a request to open a file on a logical volume (that is, a partition or dynamic volume) as follows: A user application calls CreateFil翻译 2008-09-17 18:43:00 · 2161 阅读 · 1 评论 -
Pageable kernel-mode drivers
Pageable kernel-mode driversBy default, the kernel loader will load all driver executables and any global data that you may have defined in your driver into nonpaged memory. Therefore, if you want y转载 2008-09-18 09:08:00 · 1114 阅读 · 0 评论 -
CreateFile打开文件执行流程浅析
CreateFile打开文件的执行流程浅析 分析CreateFile这个函数打开文件的执行流程有助于我们理解windows操作系统在接收到用户打开文件请求后都会做哪些工作、它是如何找到驱动程序的、以及有哪些windows核心部件参与了打开文件的操作,这对我们开发windows驱动程序十分有益。下面我们以CreateFile打开文件C:/MYFILE.CPP来浅析这一过程,系统对象参考图例原创 2008-09-17 18:35:00 · 5970 阅读 · 1 评论 -
Timing of File Operations In WDM driver
原文:You’ll be likely to want to read a disk file in a WDM driver while you’re initializing your device in response to an IRP_MN_START_DEVICE request. Depending on where your device falls in the initi翻译 2008-09-12 10:03:00 · 977 阅读 · 0 评论 -
利用IoBuildDeviceIoControlRequest构造irp获得存储设备总线类型源代码
本代码演示用IoBuildDeviceIoControlRequest向下层存储设备的DeviceObject发送一个代码为IOCTL_STORAGE_QUERY_PROPERTY的IRP_MJ_DEVICE_IO_CONTROL的Irp获取到存储设备所在的总线类型。此代码来源于互联网,所有权归原作者所有。ULONG GetStorageDeviceBusType(IN PDEVIC转载 2008-09-08 16:29:00 · 5487 阅读 · 1 评论 -
重要函数学习:IoBuildDeviceIoControlRequest
重要函数学习:IoBuildDeviceIoControlRequest这个函数主要用来构造一个用于设备i/o控制请求的irp包,该irp包将被同步处理,其原型如下: 参数解释: IoControlCode 提供i/o控制请求所需的i/o控制码。这个i/o控制码可以在msdn中查询到。 DeviceObj原创 2008-09-08 15:53:00 · 6900 阅读 · 0 评论 -
利用ddk自带的工具build.exe编译windows驱动
1、在开始菜单中选择合适的Build Environments(选择的Build Environment一定要和编译好的驱动运行的平台相同),这一步就会在打开的cmd窗口中设置好环境变量。2、从DDK示例源代码目录拷贝makefile文件到你的驱动源文件目录中,并建立sources文件(可根据msdn帮助文件中的sources模板文件修改),其中makefile文件模板一般不用修改,修改sourc原创 2008-08-30 11:36:00 · 3025 阅读 · 0 评论 -
Windows驱动程序运行上下文简要分析
Windows驱动程序运行上下文简要分析 Windows驱动程序在内核态执行,作为驱动开发人员,我们有必要对驱动程序的执行环境有所了解,这将有助于我们正确合理地使用系统资源,从而避免产生一些难以检测的bug。 总体来说,windows驱动程序运行的上下文环境有如下四类:1、 请求系统服务线程的上下文在这种情况下,驱动程序直接在请求系统服务的那个线程上原创 2008-07-31 10:51:00 · 2443 阅读 · 0 评论 -
Windows 文件过滤驱动经验总结
原文地址:http://bbs.driverdevelop.com/htm_data/39/0701/98728.html 看了 ChuKuangRen 的第二版《文件过滤驱动开发教程》后,颇有感触。我想,交流都是建立在平等的基础上,在抱怨氛围和环境不好的同时应该先想一想自己究竟付出了多少?只知索取不愿付出的人也就不用抱怨了,要怪也只能怪自己。发自己心得的人无非是两种目的,一是引发一些讨转载 2008-07-30 09:06:00 · 1090 阅读 · 0 评论 -
USB存储设备单向控制的研究与实现
原文地址:http://www.ahcit.com/lanmuyd.asp?id=2170USB存储设备单向控制的研究与实现1 引言 计算机和计算机网络已经成为企业、政府和其它各种组织的重要信息载体和传输渠道,但是在享受计算机以及计算机网络所带来方便性的同时,信息安全也成为目前受到广泛关注的问题。美国联邦调查局(FBI)和计算机安全机构(CSI)等权威机构的研究证明了:超过80转载 2008-07-28 14:30:00 · 1515 阅读 · 0 评论 -
Windows存储设备驱动程序结构简介
Windows存储设备驱动程序结构简介Windows中的存储驱动程序符合“类(Class)/端口(Port)/小端口(Miniport)”结构:microsoft提供一个存储类驱动程序,它实现了对于所有的存储设备都共同的功能;microsoft也提供了一个存储端口驱动程序,它实现了对于特定总线而言共同的功能;OEM厂商提供小端口驱动程序,它们插入到端口驱动程序中,将windows与特定的实现连原创 2008-09-22 08:58:00 · 3250 阅读 · 1 评论