![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
windows内核与驱动
文章平均质量分 59
hhko12322
无耐无耐无耐啊
展开
-
开始学windows内核或驱动编程注意事项
1 vmware 添加虚拟串口: \\.pipe\com_1 This end is the server The other end is an application 2 在虚拟机XP系统的boot.ini中添加:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows原创 2013-06-15 13:29:40 · 877 阅读 · 0 评论 -
驱动程序与应用程序的通讯
应用程序除了要调用ReadFile0,WriteFile0函数与驱动程序进行数据交换,我们还需要随时了解设备的工作状态,设定设备的工作状态。其主要手段是在应用程序中调用DeviceIoControl()函数,对DeviceloControl()的调用将使YO管理器创建一个带有IRP W DEVICE CONTROL主功能码的IRP,该IRP会被发送到驱动程序的IRP mJ DEVI转载 2013-12-23 14:01:40 · 1264 阅读 · 0 评论 -
DPC延迟过程调用
每个设备对象中都含有一个KDPC对象,DEVICE_OBJECT中有一个内置的DPC对象Dpc。当在驱动程序的AddDevice例程创建了设备对象后,如果需要用DPC例程就要在AddDevice例程中调用IolnitimizeDpcRequest初始化这个内置DPC对象,同时注册一个DPC例程。IolnitializeDpcRequest的~个参数为FDO设备对象,一个为指向DPC转载 2013-12-23 13:44:42 · 2396 阅读 · 0 评论 -
IO_REMOVE_LOCK使用方法
IO_REMOVE_LOCK(删除锁)的具体结构没有公开,WDK的文档中中查不到IO_REMOVE_LOCK。最开始看到IO_REMOVE_LOCK是在WDK的例子event中。下面是参考网上的一些资料之后的一点总结,错误的地方请指正。为什么要用IO_REMOVE_LOCK?WDM 驱动程序在处理设备删除 IRP 并释放驱动程序分配的内存后可能接收到附加的 IRP。在处理附加的 IRP 时转载 2013-12-23 11:17:08 · 687 阅读 · 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-1转载 2013-12-20 14:15:33 · 978 阅读 · 0 评论 -
windbg 调试驱动设置断点
在对windows的驱动做双机调试时,总会需要在自己编写的驱动代码上设置断点。 1 这需要首先,在windbg上设置工作空间(workspace) 在这步里面,需要将自己生成的符号文件,能够让windbg搜索到,即将自己符号文件的路径加入到windbg的symbol path里原创 2013-12-19 15:56:22 · 2922 阅读 · 0 评论 -
蓝屏原因
1 如果采用IoGetDeviceProperty来获得当前物理设备对象的总线类型的GUID,又往往会导致操作系统出现蓝屏(系统死机)。因为函数调用要求在passive-level执行,而不是dispatch-level。原创 2013-12-30 10:31:17 · 815 阅读 · 0 评论 -
常用工具:windows内核与驱动程序设计
运行在被调试机上的工具软件:1.加载驱动程序的工具 EZDriverInstaller 和osrloader 2 IRP跟踪和调试 IRPTrace3 USB查看工具 DDK自带的usbview,可以清楚的列举出各个USB的信息,如设备描述符,管道描述符等 BUShound 可用于usb、1394、SCSI/IDE等总线设备。它的实现原理原创 2013-12-19 14:06:18 · 750 阅读 · 0 评论 -
安装与配置windbg 的符号文件(转自一片文章的回复,回复者RegKiller)
安装与配置 windbg 的 symbol (符号)本篇是新手自己写的一点心得.建议新手看看.同时希望前辈多多指教.写这篇的动机:在网上找了一上午的 windbg 配置符号教程.楞是没找到详细的,都讲的太模糊而且互相抄袭.不适合新手看.终于靠自己的努力弄懂了一点,呵呵写出来新手们分享.安装与配置 windbg 的 symbol (符号)第一步 是从 http://w转载 2013-05-04 15:29:16 · 1228 阅读 · 0 评论 -
AlignmentRequirement
执行DMA(DirectMemoryAccess,直接内存存取)传输的设备直接使用内存中的数据缓冲区工作。HAL要求DMA传输中使用的缓冲区必须按某个特定界限对齐,而且设备也可能有更严格的对齐需求。设备对象中的AlignmentRequirement域表达了这个约束,它是一个位掩码,等于要求的地址边界减一。下面语句可以把任何地址圈入这个界限:PVOID address = ...;SIZE原创 2014-01-02 13:34:37 · 1040 阅读 · 0 评论 -
驱动编写技巧说明
1。在编写驱动程序的主要头文件中会有:#define PAGEDCODE code_seg("PAGE")#define LOCKEDCODE code_seg()#define INITCODE code_seg("INIT")#define PAGEDDATA data_seg("PAGE")#define LOCKEDDATA data_seg()#define原创 2013-12-17 11:17:24 · 848 阅读 · 0 评论 -
值加减,别忘可能是个指针运算
在做dsp pci驱动时,有一句:WRITE_REGISTER_ULONG((PULONG) (pdx->base[TI_OPREGS] + (TI_HSR/4)), TI_DISABLE);TI_HSR 做了除以4,感觉不解,就把除以4去掉,运行。。。毫无意外的蓝屏了pdx->base[TI_OPREGS] + (TI_HSR/4)检测了它的值,发现和 pdx->base[TI_原创 2014-01-02 13:49:14 · 672 阅读 · 0 评论 -
windows驱动 双机调试环境建立
要是想做WINDOWS pci驱动的调试,常用的虚拟机调试貌似不大好用了(不过还没有试)采用最简单的串口调试方法。这其中,需要的硬件仅仅是一条交叉串口线,若是主机为笔记本,那还需要一个USB转串口线被调试机方设置:对于 Windows XP,由于启动使用的是 boot.ini 数据,因此我们可以手动修改 C:\boot.ini 文件(假设您的系统装在 C 盘),在像原创 2013-12-16 19:53:22 · 1065 阅读 · 0 评论 -
一个PCI中断异步的问题
最近发现由于PCI数据传输错误导致IO request得到的数据不正确,这种现象让我们思考,为什么系统都已经发现了PCI错误,IO request还能正确结束呢?按照惯例思考,PCI传输出错,IO request就应该fail掉,但是,事实不是这样。难道这个问题和PCI的中断异步有关系?因此,这里详细讨论一下PCI的中断异步问题及PCI解决办法。 PCI拥有多种数据传输模式,post、no转载 2013-12-06 12:45:56 · 903 阅读 · 0 评论 -
地址空间的归纳总结---PCI 涉及到的地址映射转换
通常X86系统中会存在四大地址空间:进程地址空间、内核地址空间、物理地址空和PCI地址空间。这几大地址空间有些是硬件领域的相关内容,例如PCI地址空间,PCI Hole;有些是软件研发需要了解的。这几大地址空间有什么不同?他们之间是如何联系在一起的呢?下图是进程地址空间、内核地址空间以及物理地址空间之间的联系,下面对几大地址空间的联系进行阐述。 650) this.width=6转载 2013-12-06 12:39:05 · 8447 阅读 · 1 评论 -
USB驱动程序使用IOCTL内部控制IRP
编写USB驱动程序,发出内部IOCTL给USB总线驱动程序,使用IoBuildDeviceIoControlRequest函数可以方便的构造IOCTL和内部IOCTL IRP,如果传递一个已经初始化了的时间,就可以通过等待该事件触发来等待IRP完成,而不需要设置完成例程。usb内部IOCTL不使用标准输入和输出缓冲区,而必须设置下一个栈单元的字段-- Parameter.Other.Argumen原创 2013-08-14 10:37:01 · 1761 阅读 · 0 评论 -
配置驱动开发环境--vs2008+ddkwizard+wdk7600
一.下载安装必要文件。 1.下载wdk7600那个包,然后安装 2,。下载安装vs2008及vs2008sp1 3. 下载安装ddkwizard和ddkbuild_bat.zip, ddkbuild_cmd.zip (from:http://ddkwizard.assarbad.net/)原创 2013-06-29 18:26:13 · 1172 阅读 · 0 评论 -
编写测试驱动程序的vc工程
1 。 在与驱动程序同一工作空间里,建立空项目2 。依照需要,添加头文件: #include 驱动程序中的ioctl #include "../MyDriver/Ioctls.原创 2013-12-22 13:40:13 · 824 阅读 · 0 评论