Windows
笃行笔记
这个作者很懒,什么都没留下…
展开
-
USB/PCIE/ROOT COMPLEX & Windows/Linux Driver
好久没有写了总结一下工作多年所涉及的内容:1. USB Device: USB1.1, USB2.0, USB3.0, USB3.12. USB Host: xHCI3. PCIe: EP, Switch, Root Complex4. IOMMU5. APIC: IO-APIC, Local APIC软件(驱动)层面:1. Windows AVStream/BDA driver -- USB/PCI PCTV case (WHQL passed)2. Window.原创 2020-06-06 09:55:34 · 1232 阅读 · 0 评论 -
驱动人生
2018-2019两年时间参与了以下项目PCIe Switch Management SW:Windows KMDF driver Linux kernel driver (包括 NTB kernel driver) Application tool其中,Windows KMDF driver 部分,取得了微软认证 Linux kernel driver (包括 NT...原创 2019-07-14 14:05:20 · 780 阅读 · 4 评论 -
第九篇:万丈高楼平地起-驱动编程基础知识点
Windows驱动开发,其中有一个最大的问题,就是微软没有太多公开的技术细节.有的时候,会让开发者模棱两可, 不知所谓.另外一个方面, 现在开发驱动, 很多都直接使用WDF取代了WDM, 对驱动原理,细节的理解,就更加不够深入了.2006年开始接触Windows驱动开发, 开发过AVStream/BDA, Filter, Function Driver.但要把一个东西搞清楚明白的角原创 2014-02-01 22:51:22 · 1884 阅读 · 0 评论 -
第十篇:万丈高楼平地起-驱动编程基础知识点(二)
1. -QueueLock The QueueLock member of the device extension is a spin lock that protects access to NewRequestsQueue. NewRequestsQueue requires a spin lock to synchronize thread a原创 2014-02-03 22:24:13 · 1606 阅读 · 0 评论 -
第十一篇:万丈高楼平地起-驱动编程基础知识点(三)
1.// // Initialize DevicePowerState to PowerDeviceD3. PowerDeviceD3 is the lowest // power state for hardware. ToasterAddDevice initializes DevicePowerState to // the lowest power sta原创 2014-02-04 17:56:33 · 1520 阅读 · 0 评论 -
第十二篇:从生稣出熟稣,从熟稣出醍醐-再读内核驱动设计目标
"照葫芦画瓢"与"改例子代码为已所用"是软件工程师的一条捷径.无论是Windows WDK/DDK还是Linux, 都提供了数不胜数的实例, 以供驱动编程学习与实际项目的需要.以USB驱动为例, 在WDK的例子程序中, 涵盖了KMDF, UMDF, EXE一系列代码例子.而Linux中则更为丰富, 其包含了Host, composite, hub, 以及各类USB设备的驱动源代码, 让原创 2014-02-07 14:39:45 · 1457 阅读 · 0 评论 -
第十三篇:无征不信,不信民弗从--USB-IF官方驱动BSOD案例分析
USB-IF是USB的官方组织, 从它的官方网页:www.usb.org上可以看到, 它的主要工作内容与职责:About USB Implementers Forum, Inc.USB Implementers Forum, Inc. is a non-profit corporation founded by the group of companies that develop原创 2014-02-13 16:39:59 · 3319 阅读 · 1 评论 -
第十四篇:有透彻之悟,有但得一知半解之悟--议IRP_MN_WAIT_WAKE及系统与驱动电源管理相关内容
在电子产品方面, 无论是普通消费者, 还是专业技术工程师, 两个最重要的关心角度便是: "性能-Performance"与"耗电情况- Power Consumption".今天, 抛开"性能"方面, 谈一谈"电源管理".2011年4月19日, 高盛集团的"关于平板机的颠覆性影响:全面分析全球TMT 及其零售领域的赢家和输家"分析报告指出, "苹果在2010 年1 月正式发布了人们原创 2014-02-16 21:33:23 · 3174 阅读 · 0 评论 -
第二十一篇:基于WDM模型的AVStream驱动架构研究
基于WDM模型的AVStream驱动架构研这篇论文2006年早就发表, 与当时开发这个驱动正好差不多的时间.最近实际项目需要, 又回过头来将AVStream中的主要框架列举一下.整个框架由:KSDeviceKSFilterKSPin所构成KSDevice负责了PNP相关的DISPATCH, 如START,原创 2014-06-06 14:41:04 · 2795 阅读 · 0 评论 -
第二十二篇:再写Windows驱动,再玩Windbg---NET
2011年到现在,就没再怎么搞过Windows驱动了.最近, 由于项目需要, 试着改一改一个显卡驱动(KMDOD), 从实践上证明, 我在理论上对一个驱动的架构的正确与否.(USB Display = KMDOD + AVStream).其中, KMDOD是完成显示的部分功能, 完成其中的VidPN(Video present network), 将驱动中原来的POST物理设备转变为USB原创 2014-06-20 16:27:41 · 4494 阅读 · 3 评论 -
第二十三篇:Windows中的ACPI
一直不太清楚ACPI驱动在WINDOWS中的作用.甚至不了解ACPI协议的作用.于是, 随便翻了下"格蠹汇编"中的第24章, 如何跟踪ACPI代码, 算是对ACPI有了一个初步性的了解.ACPI向OS报告硬件信息, 而OS通过ACPI控制硬件.ACPI就是OS与硬件/固件之间的一个标准接口协议.ACPI通过ASL(ACPI SOURCE LANGUAGE)来描述系统硬件原创 2014-06-26 15:04:06 · 5773 阅读 · 0 评论 -
第二十九篇:USER MODE DLL开发过程中的调试技巧心得分享
最近由于项目需要,被老板安排开发一个WINDOWS USER MODE DLL, 即WINDOWS用户模式下的动态链接库。写代码,实现具体的功能这类初等工作,对于大多数软件开发工程师来讲,只是时间与工作量上的问题,具体的WINDOWS DLL的知识点,本人参考了Jeffrey Richter的《WINDOWS核心编程》中的DLL几章,不再熬述。这里谈一下关于USER MOD原创 2014-12-10 10:45:14 · 1476 阅读 · 0 评论 -
第三十篇:Windbg的基础知识
Windbg是一个非常强大的工具.刚刚开始,是为了替代SoftICE调试自己开发的AVStream/BDA驱动程序,以及分析由此驱动软件产生的Kernel Dump.之后,参与xHCI USB3.0/3.1 IP的开发,Windbg主要用来分析该硬件产生的Kernel Dump.第二篇:欲善其事,先利其器-USB3.0 Kernel debug extension原创 2014-12-18 13:39:38 · 2279 阅读 · 4 评论 -
xHCI USB host controller & Debug Capability & Windows debug module
大部分市面上的xHCI USB host controller都必须支持Debug Capability. (也有部分不支持的,不知道,他们有没有取得USB-IF的CERTIFICATION)Win8/8.1/10支持USB3.0/3.1的双机调试,运用的就是xHCI USB host controller的这个Debug Capability.调试的时候,一边是USB3.0/3.原创 2017-03-18 21:26:10 · 1856 阅读 · 0 评论