视频:60分钟理解Windows内核驱动 试着录制了一节视频,介绍内核驱动编程入门知识。效果尚一般,有待提高。如需要高清视频的(1920×1080),可以联系我。下载ppt:[download id=”6″] 21,927 total views, 8 views today
听了一下你的视频资料 有两点需要和你确认一下: 1.一个设备包含USB HUB,同时又有键盘,他是一个COMPOUND DEVICE. 这个情况下,USB HUB用到HUB驱动.这个驱动既是BUS DRIVER,又是HUB的FUNCTION DRIVER. 而这个键盘,对应于一个FUN DRV. 在这个情况下,是没有COMPOSITE DRV参于到其中的. 2.如果一个USB DEVICE有多个INTF,那就需要有一个COMPOSITE DRV,同时每一个INTF对应一个FUN DRV. 我们可以演化得复杂一点,那就是一个HUB,带了一个KEYBOARD,同时又有一个SPECKER_M0,一个MICROPHONE_M1. 那这个DEVICE既是一个COMPOUND,又是一个COMPOSITE. 这里想和你确认的一点是,COMPOSITE算不算一个BUS DRIVER? 我的理解是,如果从枚举不同的INTF来说,应该算是一个BUS DRIVER. 但这个COMPOSITE DRV自己来讲,只是一个BUS DRIVER,不像HUB DRIVER一样,既是BUS,又是FUN DRV. 回复
Compound device请参照USB2 spec. 4.8.2.2 A compound device appears to the host as a hub with one or more non-removable USB devices. 曾经遇到过一个开发xHCI host linux驱动的工程师,竟然从来没有翻过一次INTEL的xHCI spec,也不了解PCI/PCIe. 回复
你错了,我在视频中没有谈到“表现为USB Hub,并连着若干不可移除的USB设备”的设备,我只谈到接到hub上的多接口的composite device。对于你的关于我不读spec的批评,我当然虚心接受,我确实没有仔细扣过那几百页内容的每一个字。你知道compound device,很好。我有空还会读。 回复
你好,张老师,我使用win7 64位笔记本,我安装了win7的WDK包,我是用里面的windbg(64位)来调试程序的,但是现在有个很奇怪的问题一直出现,就是当我试图用菜单File->Open Executable的方式调试我自己编写的一些(不是全部)32位程序的时候,出现could not create process win32 error 0n5 拒绝访问。这是怎么一回事,通过attach to a process的调试方法都是没有问题的 回复
张老师,我想看看您的这个视频的高清版,目前正在学习Windows驱动编程,进展比较缓慢,看到您的这个视频,感觉不错,希望您能把视频的高清版发到我的邮箱zhangxinjian_2012@163.com,谢谢您。 回复
张老师,您好! 最近在看你写的关于USB方面的书籍。因为公司项目拓展,让我写一个windows usb 网卡驱动,类似360 随身wifi那种。我之前是搞linux驱动开发的,目前linux 下面的驱动已经有了。我现在是小白,完全自学windows 驱动。现在比较迷茫,不知道该怎么下手开发windows usb网卡驱动,可否帮忙指点下开发思路、应该看哪些书籍。 感谢您的帮忙! 回复
写windows驱动相对还是比较容易的,随便找一个sample搭出框架,然后把linux中的逻辑部分往框架中一点点移植,同时做好验证的准备。同时也要经常用verifier进行正确性的验证。基本上如此。 回复
张老师:能不能问您两个问题,在USB驱动中,是不是发送了一次set_configure命令,都需要对所有的pipe进行重新配置一下?还有WDF和WDM,你咋看的?
>>是不是发送了一次set_configure命令,都需要对所有的pipe进行重新配置一下
A:当然了。推荐用WDF写USB驱动。
张老师,您好~ 我是刚开始学习内核开发的新手。非常感谢您能提供这样好的培训教程。以后我会常来您的博客的。 该课的PPT好像没有了。下载不了?
晚上我去服务器看一下。你明天再试。
谢谢老师,已经下载下来了。还买了您的《竹林蹊径》。
多谢。
听了一下你的视频资料
有两点需要和你确认一下:
1.一个设备包含USB HUB,同时又有键盘,他是一个COMPOUND DEVICE.
这个情况下,USB HUB用到HUB驱动.这个驱动既是BUS DRIVER,又是HUB的FUNCTION DRIVER.
而这个键盘,对应于一个FUN DRV.
在这个情况下,是没有COMPOSITE DRV参于到其中的.
2.如果一个USB DEVICE有多个INTF,那就需要有一个COMPOSITE DRV,同时每一个INTF对应一个FUN DRV.
我们可以演化得复杂一点,那就是一个HUB,带了一个KEYBOARD,同时又有一个SPECKER_M0,一个MICROPHONE_M1.
那这个DEVICE既是一个COMPOUND,又是一个COMPOSITE.
这里想和你确认的一点是,COMPOSITE算不算一个BUS DRIVER?
我的理解是,如果从枚举不同的INTF来说,应该算是一个BUS DRIVER.
但这个COMPOSITE DRV自己来讲,只是一个BUS DRIVER,不像HUB DRIVER一样,既是BUS,又是FUN DRV.
我不知道有compound device的说法,请指明出处。对于接口子设备的功能驱动来说,下面的composite device driver就是它的bus driver。
Compound device请参照USB2 spec.
4.8.2.2
A compound device appears to the host as a hub with
one or more non-removable USB devices.
曾经遇到过一个开发xHCI host linux驱动的工程师,竟然从来没有翻过一次INTEL的xHCI spec,也不了解PCI/PCIe.
你错了,我在视频中没有谈到“表现为USB Hub,并连着若干不可移除的USB设备”的设备,我只谈到接到hub上的多接口的composite device。对于你的关于我不读spec的批评,我当然虚心接受,我确实没有仔细扣过那几百页内容的每一个字。你知道compound device,很好。我有空还会读。
另外有一个建议,不知道是否合适.希望把课的节奏加快一点,内容压缩一点,同时,视频不是太清楚,在演示阶段,便于学生看清楚演示内容.
视频提交的时候网站会压缩。我有未压缩的。你的建议当然很好,我尽量改进。
你好,张老师,我使用win7 64位笔记本,我安装了win7的WDK包,我是用里面的windbg(64位)来调试程序的,但是现在有个很奇怪的问题一直出现,就是当我试图用菜单File->Open Executable的方式调试我自己编写的一些(不是全部)32位程序的时候,出现could not create process win32 error 0n5 拒绝访问。这是怎么一回事,通过attach to a process的调试方法都是没有问题的
应该是运行权限问题,你以管理员方式运行windbg试试
我一直是管理员权限打开的,一开始还是不行,但是多运行几遍windbg后现在又可以调试了,真的很奇怪。谢谢你的帮助。
Articles like these put the consumer in the driver seat-very imttaornp.
张老师,我是驱动开发的新手,您的竹林蹊径看了好多遍,可是一点都不会调试,想知道如何能获取高清的视频?
给我发个邮件吧,我把视频上传到网盘后,给你下载。
好的,已经给你邮箱发了信息,还有几个问题在上面,麻烦了^-^……
张老师,我很喜欢看您的视频,可否给我发一份。邮箱9641354@qq.com。
张佩老师,请问一下有什么好的关于信息安全类的驱动开发方面的资料啊?
Hi 佩哥,最近我会经常看你写的文章,看完了自己都会想一想,真的觉得你讲的很好。。。期待关于GFX的更详细的解说,和camera ,audio的交互方面的
张老师,能给个高清视频的网盘下载地址吗?小弟最近在学驱动,准备看您的竹林蹊径来学习
张佩老师:你好!我正在看你写的书,里面提到了MyDrvInst这个用于安装驱动的小工具,您能发给我一份吗?如果有源码的话,能否共享一下?我正在为自己写的驱动做一个安装包。谢谢了!
张老师您好,现在因工作需要正在学windows驱动,能否也发一份给我,我的邮箱windowsbbs@126.com,非常感谢。
At last, somoene comes up with the “right” answer!
张老师,我想看看您的这个视频的高清版,目前正在学习Windows驱动编程,进展比较缓慢,看到您的这个视频,感觉不错,希望您能把视频的高清版发到我的邮箱zhangxinjian_2012@163.com,谢谢您。
可以发给我一份高清视频吗,谢谢
源代码 可以发给我一份吗 谢谢
源代码 可以发给我一份吗 谢谢 ywj1134915444@qq.com
我想要高清视频 优酷真的压缩的太厉害了…..ywj1134915444@qq.com
张老师,您好!
最近在看你写的关于USB方面的书籍。因为公司项目拓展,让我写一个windows usb 网卡驱动,类似360 随身wifi那种。我之前是搞linux驱动开发的,目前linux 下面的驱动已经有了。我现在是小白,完全自学windows 驱动。现在比较迷茫,不知道该怎么下手开发windows usb网卡驱动,可否帮忙指点下开发思路、应该看哪些书籍。
感谢您的帮忙!
写windows驱动相对还是比较容易的,随便找一个sample搭出框架,然后把linux中的逻辑部分往框架中一点点移植,同时做好验证的准备。同时也要经常用verifier进行正确性的验证。基本上如此。