阅读:4729回复:13
[原创]bulk only usb mass driver 源代码含
跟踪了下发现windows提供的usbstor.sys使用的是标准的startio模型
经无数前人灌输的思想...频繁的调用IoAcquireCancelSpinLock是一个对性能极大影响的操作 于是乎就有了这份代码...没有任何特别的地方 只是没有使用标准的startio而已... 而是自己实现了一份device queue的函数而已 说自己实现又显得很过分.借用前人的研究成果还大言不惭说自己实现....呵呵... 我用的这个模型是非常普通以至于随便在网上一搜都能找到一大片 当然不在这里卖弄了 windows提供的驱动是一个大而全的驱动 bulk only...cbi...cb都能操作 而我这里给出来的没有这么好了 只是bulk only而且只能是subclass 6 inf文件里面写得很清楚 请不要试图用除了修改源代码以为的任何的方式让他能工作在其他环境下面..嘿嘿 inf文件里面的那个很特别的section是为我手头上这个u盘而准备的 然后...现在的这个版本..把所有的磁盘都报告成固定的硬盘 以至于当你的u盘插上去显示的 不是removable drive 所有请特别的小心使用这个驱动..请备份好你的mass drive 遇到windows说无法识别分区的情况请不要去format他.也不要去分区....否则.....哈哈.... 嗯嗯.基于这样一个事实我才强行报告成nonremovable disk.sys只为removable disk创建一个child pdo 以至于既便是你为u盘分了区.也只能使用第一个分区 当然了...代码已经交到你的手上了..想怎么改就怎么改 最后最后..请在有system debugger的环境下加载这个驱动 切记... 因为源代码里面那些breakpoint能让你的没有debugger 保护的系统 蓝屏.....哈哈哈 按照习惯... 我仍然使用.net 2003作为编译环境.... 编译的事情就要靠你自己动手解决了. 压缩包里面带的是一个checked 版的驱动...for 2003的 还带有pdb..... 纯粹想试试玩玩的同学又是使用softice的同学请自己转换成nms格式 以上 |
|
最新喜欢:TOMG20... |
沙发#
发布于:2005-03-22 09:05
好东西,先收藏了......
|
|
|
板凳#
发布于:2005-03-22 22:10
tiamo一出,必是精品!先收了,谢谢!
|
|
|
地板#
发布于:2005-03-23 07:49
用过的同学有碰到bugcheck的时候么?
似乎我碰到过一次两次 可惜每次都没有仔细看是什么原因 而且我也没有crashdump... 如果有碰到蓝屏的情况 请告诉我原因.以及地址 非常感谢 |
|
地下室#
发布于:2005-03-23 12:46
仔细检查发生有个同步的bug
还不知道是不是因为这个原因.... |
|
5楼#
发布于:2005-03-23 17:35
bug找到了
原来PoRequestPowerIrp的complete routine里面第一个参数是Physical device object..... 一不小心当作普通irp的complete routine来处理了 结果ASSERT了 那个时候softice已经卸载了 这种情况就体现出windbg的功能来了 full dump 然后用windbg打开瞬间找到问题的所在... 重新打包上传一份 修改了不少地方...就不在这里一一列举了 本想发到usb版的 但是usb版都讨论些什么d12啊一类的硬件...我看着跟天书一样. 结果就发到了这里 不过似乎人气一样不是很高 |
|
|
6楼#
发布于:2005-03-25 21:57
下了学习一下!谢谢
|
|
7楼#
发布于:2005-03-29 12:57
向tiamo学习!
谢谢! |
|
|
8楼#
发布于:2005-03-31 08:59
真厉害,学习!!!
|
|
9楼#
发布于:2005-04-07 08:08
真是好帖阿
|
|
10楼#
发布于:2005-04-11 01:29
学习一下。
|
|
11楼#
发布于:2008-09-19 16:17
你真TMD的厉害~~~~
能不能交个朋友啊 manwhp@126.com |
|
12楼#
发布于:2008-10-19 13:26
Thanks a lot.
|
|
13楼#
发布于:2009-09-29 13:38
无语了。。。。
各个都是精品。。 |
|