阅读:1071回复:2
请USB高手会诊,帮我想一下该在怎么解决这个问题吧!!
以前做了个应用程序对U盘进行低级格式化,还可以发命令从U盘内取出用户进行低格的密码,如果U盘是好的,我可以用hDevice = createFile(\"\\\\.\\F:\"..)得到handle,然后用bResult = DeviceIoControl(hDevice,IOCTL_SCSI_PASS_THROUGH,spt,spt->TotalSize,spt,spt->TotalSize,&returned,FALSE);与U盘通信
现在假如U盘坏掉,插如U盘不能出现盘符,vid和pid都变成了ffff,系统已经不能加载磁盘驱动,不过还能识别它是USB设备,在这种情况下还想和U盘通讯,对其低格,该怎么做呢??? 我是这样做的,可是不行,如下:通过Setup API得到这个U盘USB设备的Symbol link后,用CreateFile打开这个句柄,hDevice = CreateFile(\"\\\\?\\usb#vid_ffff&pid_ffff#007#{a5dcbf10-6530-11d2-901f-00c04fb951ed}\",......);然后在createfile打开端口 然后用writefile写数据,可是总提示我参数错误,这是什么原因呢,如果用DeviceIOcontrol向其发IO控制码,该怎么用呢!!请高手指教!! 附上我对U盘的理解,不知道对不对:当U盘成为磁盘设备时,通过disk.sys调用usbstor.sys,然后callUsbd,然后调用usbhub.sys与下边通讯,现在我磁盘那一级已不能识别,想通过usbstor.sys与底层通讯,该怎么做呢,2k下的usbsotr.sys是系统的啊!! 各位 USB高手,指点我一下该怎么做吧,万分感谢,谢谢了!!! |
|
沙发#
发布于:2003-09-15 11:38
怎么没人回答我!!!!!!!!!!!!!
|
|
板凳#
发布于:2003-09-20 09:28
不懂。 帮你顶。
要不你转到 usb驱动开发版面去吧。 那高手常去。 再就把你的问题简单化,我看的头都大了。 :D |
|