panxz
驱动牛犊
驱动牛犊
  • 注册日期2002-04-04
  • 最后登录2007-04-12
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1896回复:2

移动磁盘的设备问题

楼主#
更多 发布于:2002-08-11 19:56
我有个问题请各位指教:
我的移动磁盘在win98下用到特定的driver,设备名称是FUSB10-0(FUSB10-1),
hBulkIn = CreateFile(\"\\\\\\\\.\\\\FUSB10-0\\\\PIPE00\",GENERIC_WRITE | GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ, NULL,OPEN_EXISTING, 0, NULL);
再调用 ReadFile(hBulkIn.......) 我可以在VC下编程从移动磁盘读取数据.
现在的问题是在Win2000/XP下,系统调用的是microsoft的 usbstor.sys,因不知device名称,我如何实现上面程序的功能?

多承各位指教!
也特请dazzy先生指教!!

tonyp@yofun.com
zjb9606
禁止发言
禁止发言
  • 注册日期2001-03-31
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分28476分
  • 威望148950点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-08-25 22:21
用户被禁言,该主题自动屏蔽!
dazzy
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-08-12
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望10点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-12 08:46
我有个问题请各位指教:
我的移动磁盘在win98下用到特定的driver,设备名称是FUSB10-0(FUSB10-1),
hBulkIn = CreateFile(\"\\\\\\\\.\\\\FUSB10-0\\\\PIPE00\",GENERIC_WRITE | GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ, NULL,OPEN_EXISTING, 0, NULL);
再调用 ReadFile(hBulkIn.......) 我可以在VC下编程从移动磁盘读取数据.
现在的问题是在Win2000/XP下,系统调用的是microsoft的 usbstor.sys,因不知device名称,我如何实现上面程序的功能?

多承各位指教!
也特请dazzy先生指教!!

tonyp@yofun.com
 


usbstor.sys没有设备名(IoCreateDevice调用时传递的参数DeviceCharacteristics为 FILE_AUTOGENERATED_DEVICE_NAME
),也没有建立符号连接(SymbolincLink)。另外usbstor.sys不支持IRP_MJ_READ/IRP_MJ_WRITE。对此设备的读写操作都会被STORAGE CLASS DRIVER 转换成IRP_MJ_SCSI。(请参见站上我写的一篇文章)。
当然有其他方法实现你所说的功能:
1.枚举次设备得到它的符号连接.
2.将读写命令转化成IRP_MJ_DEVICE_CONTROL(IoControlCode 为IOCTL_SCSI_PASS_THROUGH),注意结构SCSI_PASS_THROUGH的填写,因为USBSTOR.SYS对此结构建查颇为严格。
游客

返回顶部