larryhh
驱动小牛
驱动小牛
  • 注册日期2001-10-12
  • 最后登录2004-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2005回复:19

高分求助,大家都来看看

楼主#
更多 发布于:2004-06-04 17:06
我想在应用程序中对u盘的usb口读写数据,98下自己写的驱动没问题,自己定好GUID,再取回devicesymblelinkname,CReatefile就好了。可是在win2k下用的是系统的usbstor.sys的驱动,用ddk定义的GUID_CLASS_USB_DEVICE,取回devicesymblelinkname,CreateFile后,再用ReadFile就返回fail,硬件端发现没有信号下来。请问有什么办法达到我的目的,或者是根本就不能这样做(win2k下)
larry
larryhh
驱动小牛
驱动小牛
  • 注册日期2001-10-12
  • 最后登录2004-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-07 14:45
IRP_MJ_READ,IRP_MJ_WRITE,2000系统里自带的驱动里不支持吗?
用ddk定义的GUID_CLASS_USB_DEVICE取回的symbollinkname, 再用CreateFile返回的handle,是不能用的吗,望各位大虾给个意见
larry
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-07 15:27
win2k下访问u盘走磁盘驱动这条路比较好点,个人意见而已

我想在应用程序中对u盘的usb口读写数据,98下自己写的驱动没问题,自己定好GUID,再取回devicesymblelinkname,CReatefile就好了。可是在win2k下用的是系统的usbstor.sys的驱动,用ddk定义的GUID_CLASS_USB_DEVICE,取回devicesymblelinkname,CreateFile后,再用ReadFile就返回fail,硬件端发现没有信号下来。请问有什么办法达到我的目的,或者是根本就不能这样做(win2k下)
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
larryhh
驱动小牛
驱动小牛
  • 注册日期2001-10-12
  • 最后登录2004-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-07 16:27
 
win2k下访问u盘走磁盘驱动这条路比较好点,个人意见而已
 

俺不是要访问u盘,呵呵,俺是想要通过驱动访问硬件的firmware啊,唉,该死的老板,真要命啊。
larry
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-07 16:41
不太明白,有点糊涂:)
俺不是要访问u盘,呵呵,俺是想要通过驱动访问硬件的firmware啊,唉,该死的老板,真要命啊。
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
larryhh
驱动小牛
驱动小牛
  • 注册日期2001-10-12
  • 最后登录2004-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-08 08:59
就是象普通usb设备那样,ap与驱动之间通信,只要可以直接读写原始数据通过usb端口。这样,我就可以自己定个协议命令,通过ap发给u盘的firmware,执行特殊的功能
larry
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-08 14:55
上午试了一下,行不通,郁闷……
似乎不是这个guid,同样期盼高人指点

就是象普通usb设备那样,ap与驱动之间通信,只要可以直接读写原始数据通过usb端口。这样,我就可以自己定个协议命令,通过ap发给u盘的firmware,执行特殊的功能
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
larryhh
驱动小牛
驱动小牛
  • 注册日期2001-10-12
  • 最后登录2004-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-06-08 15:11
多谢老兄关心,给点分数表示感激,估计这里是没人知道了
larry
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-06-08 15:42
不用了,又没解决问题。
还有一点,感觉比你小:)很不好意思

多谢老兄关心,给点分数表示感激,估计这里是没人知道了
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-06-09 08:53
问一个太菜的问题。
USB一接上PC,HOST DRIVER就发送信息要求识别,我的为什么不返回
设备标示符?
希望指教。
新手上路,请多关照.
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-06-09 09:00
不在吗?
新手上路,请多关照.
larryhh
驱动小牛
驱动小牛
  • 注册日期2001-10-12
  • 最后登录2004-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-06-09 09:30
没明白你的意思
larry
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-06-11 11:17
应该不可以。
msdn中提到usbmassstorage驱动过程,请见附件
当使用GUID_CLASS_USB_DEVICE来获得设备接口,得到symblelinkname,但无法响应creatfile,因为驱动已经已经将其挂到disk.sys了,猜想usbstor.sys根本就没做IRP_MJ_CREATE、IRP_MJ_READ、IRP_MJ_WRITE等。

不知道说的对不对,请大虾指点。

另外GUIDs for device classes used in Plug & Play,如GUID_DEVCLASS_DISKDRIVE是干嘛用的呢?并且在DeviceClasses都没它的设备接口。不太明白。请指点,谢谢!!


就是象普通usb设备那样,ap与驱动之间通信,只要可以直接读写原始数据通过usb端口。这样,我就可以自己定个协议命令,通过ap发给u盘的firmware,执行特殊的功能
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-06-11 11:27
就是象普通usb设备那样,ap与驱动之间通信,只要可以直接读写原始数据通过usb端口。这样,我就可以自己定个协议命令,通过ap发给u盘的firmware,执行特殊的功能

用厂商请求不行吗?
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-06-11 11:46
[quote]就是象普通usb设备那样,ap与驱动之间通信,只要可以直接读写原始数据通过usb端口。这样,我就可以自己定个协议命令,通过ap发给u盘的firmware,执行特殊的功能

用厂商请求不行吗? [/quote]
问:要用win2k自带的驱动,厂商请求下的去吗??
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
beaumenu
驱动牛犊
驱动牛犊
  • 注册日期2004-06-11
  • 最后登录2009-01-05
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望5点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-06-11 12:02
[quote][quote]就是象普通usb设备那样,ap与驱动之间通信,只要可以直接读写原始数据通过usb端口。这样,我就可以自己定个协议命令,通过ap发给u盘的firmware,执行特殊的功能

用厂商请求不行吗? [/quote]
问:要用win2k自带的驱动,厂商请求下的去吗?? [/quote]

请指教一下ISP1581总是进SUSP中断是什么原因啊
larryhh
驱动小牛
驱动小牛
  • 注册日期2001-10-12
  • 最后登录2004-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-06-11 12:07
最近去usb.org上问了一下,有人给了个新思路,我研究试试。有了结果通报给大家。
 
当使用GUID_CLASS_USB_DEVICE来获得设备接口,得到symblelinkname,但无法响应creatfile,因为驱动已经已经将其挂到disk.sys了,猜想usbstor.sys根本就没做IRP_MJ_CREATE、IRP_MJ_READ、IRP_MJ_WRITE等。
 

IRP_MJ_CREATE应该是可以的,但是有可能出于上层DISK.SYS对USBSTOR.SYS的独占访问必要,READ,WRITE,可能都是被禁止了
larry
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-06-11 12:14
[quote][quote]就是象普通usb设备那样,ap与驱动之间通信,只要可以直接读写原始数据通过usb端口。这样,我就可以自己定个协议命令,通过ap发给u盘的firmware,执行特殊的功能

用厂商请求不行吗? [/quote]
问:要用win2k自带的驱动,厂商请求下的去吗?? [/quote]
楼主没说要用自带的啊
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-06-11 12:36
是USB-IF论坛吗?
什么新思路,先透露一点,怎样??

最近去usb.org上问了一下,有人给了个新思路,我研究试试。有了结果通报给大家。
IRP_MJ_CREATE应该是可以的,但是有可能出于上层DISK.SYS对USBSTOR.SYS的独占访问必要,READ,WRITE,可能都是被禁止了

同意!
你的说法应该对吧

[编辑 -  6/11/04 by  flyhye]

[编辑 -  6/11/04 by  flyhye]
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
larryhh
驱动小牛
驱动小牛
  • 注册日期2001-10-12
  • 最后登录2004-09-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-06-11 13:12
 
是USB-IF论坛吗?
什么新思路,先透露一点,怎样??

是的。
I think USBSTOR implements SCSI port interface, not block device interface. You need to open the volume. Enumerate all GUID_DEVINTERFACE_CLASS_VOLUME device interfaces.
有人这样回复我,不过我不是很清楚意思,一起研究吧
larry
游客

返回顶部