阅读:1398回复:2
请教:如何往我的U盘里面写数据?
现成的U盘,用微软的驱动可以直接用,
现在想用自己写的驱动,往里面写数据,练习练习。有几个简单的问题想不同,望高手指点。 1。我直接在驱动里面,构造好了_URB_BULK_OR_INTERRUPT_TRANSFER,填写好了参数,也给了输入输出的地址,怎么从U盘里面读不出数据?如果是系统自带的驱动,它是怎么读的? 2。我的U盘只有一个接口,有两个PIPE,一个IN,一个OUT,是直接从端点里读吗? IO_STACK_LOCATION里面有个[PFILE_OBJECT FileObject;],我看了一些驱动的原代码,里面填了pipe0,pipe1这样的信息,这个到底有什么用? 3。U盘里面的文件系统是不是U盘的控制芯片实现的?如果这样的话,要从里面读出一个文件,该怎么做啊? |
|
驱动老牛
|
沙发#
发布于:2005-04-16 09:41
通过URB协议直接和硬件通讯
用来通讯的通讯管道
文件系统是由操作系统实现的,你需要处理SCSI协议,实现READ10 WRITE10 和获得设备能力以及INQUIRY等就可以了。 |
|
板凳#
发布于:2005-04-16 16:53
3。U盘里面的文件系统是不是U盘的控制芯片实现的?如果这样的话,要从里面读出一个文件,该怎么做啊?
to :ngshengyu -------------------------------------------------------------------------------- 文件系统是由操作系统实现的,你需要处理SCSI协议,实现READ10 WRITE10 和获得设备能力以及INQUIRY等就可以了。 ///////////////////////////////////// 能不能简要的描述一下Read10怎么实现?以前只知道有SCSI硬盘,不知道这也是一个协议。 现在是,我用发送_URB_BULK_OR_INTERRUPT_TRANSFER的方法,我给它10k的缓冲区,居然没有一个字节返回来,而我的U盘你有很多的文件,都填满了,如果,这样通过总线提交读请求,都不能得到数据,又怎么解析数据,进而实现协议呢? 望高人帮我~~ |
|