八木(bamu)
驱动牛犊
驱动牛犊
  • 注册日期2005-03-14
  • 最后登录2005-11-02
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1398回复:2

请教:如何往我的U盘里面写数据?

楼主#
更多 发布于:2005-04-15 17:46
 现成的U盘,用微软的驱动可以直接用,
 现在想用自己写的驱动,往里面写数据,练习练习。有几个简单的问题想不同,望高手指点。
  1。我直接在驱动里面,构造好了_URB_BULK_OR_INTERRUPT_TRANSFER,填写好了参数,也给了输入输出的地址,怎么从U盘里面读不出数据?如果是系统自带的驱动,它是怎么读的?
  2。我的U盘只有一个接口,有两个PIPE,一个IN,一个OUT,是直接从端点里读吗?
IO_STACK_LOCATION里面有个[PFILE_OBJECT  FileObject;],我看了一些驱动的原代码,里面填了pipe0,pipe1这样的信息,这个到底有什么用?
  3。U盘里面的文件系统是不是U盘的控制芯片实现的?如果这样的话,要从里面读出一个文件,该怎么做啊?  
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-04-16 09:41

  1。我直接在驱动里面,构造好了_URB_BULK_OR_INTERRUPT_TRANSFER,填写好了参数,也给了输入输出的地址,怎么从U盘里面读不出数据?如果是系统自带的驱动,它是怎么读的?
 

通过URB协议直接和硬件通讯

  2。我的U盘只有一个接口,有两个PIPE,一个IN,一个OUT,是直接从端点里读吗?
IO_STACK_LOCATION里面有个[PFILE_OBJECT  FileObject;],我看了一些驱动的原代码,里面填了pipe0,pipe1这样的信息,这个到底有什么用?
 

用来通讯的通讯管道

  3。U盘里面的文件系统是不是U盘的控制芯片实现的?如果这样的话,要从里面读出一个文件,该怎么做啊?  
 

文件系统是由操作系统实现的,你需要处理SCSI协议,实现READ10 WRITE10 和获得设备能力以及INQUIRY等就可以了。
---内核开发合作或提供基础技术服务QQ:22863668 ---
八木(bamu)
驱动牛犊
驱动牛犊
  • 注册日期2005-03-14
  • 最后登录2005-11-02
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-16 16:53
3。U盘里面的文件系统是不是U盘的控制芯片实现的?如果这样的话,要从里面读出一个文件,该怎么做啊?
to :ngshengyu
--------------------------------------------------------------------------------
文件系统是由操作系统实现的,你需要处理SCSI协议,实现READ10 WRITE10 和获得设备能力以及INQUIRY等就可以了。
/////////////////////////////////////
能不能简要的描述一下Read10怎么实现?以前只知道有SCSI硬盘,不知道这也是一个协议。

现在是,我用发送_URB_BULK_OR_INTERRUPT_TRANSFER的方法,我给它10k的缓冲区,居然没有一个字节返回来,而我的U盘你有很多的文件,都填满了,如果,这样通过总线提交读请求,都不能得到数据,又怎么解析数据,进而实现协议呢?

望高人帮我~~

游客

返回顶部