USB mass storage 设备读写问题
时间:10-02
整理:3721RD
点击:
问题由来: 我最近在学习USB通信部分的内容,主要就是USB协议以及相关部分,然后使用的是Zynq的板子,将其配置成USB设备,mass storage类型的。然后准备用MFC写一个简单的上位机测试数据的收发。 用MFC写的USB上位机网上的资源有很多,不过我找到的都是HID设备的,大多都是使用SetupDixxx那些API函数,检测设备,CreateFile打开设备,然后WriteFile写入数据。到这里问题就来了::
问题 1):WriteFile写入失败,返回错误87,拒绝访问。尝试了网上所能找到的所有解决方法都没能解决我的问题。比如什么设备路径,,缓存区大小,,异步。等等。
问题2):我在使用SetupDixx函数检测设备时,插入mass storage设备程序会接收到两次设备插入,,
一个是 : USB\VID_0951&PID_1666\08606E6D401FBEC1670A536A。
还有一个是USBSTOR\DISK&VEN....,我没有对USBSTOR这个设备进行处理,,,这可能是导致我写入失败的原因吗?
问题3): 在检测设备的插拔时(mass storage),使用SetupDixxx类的API函数检测到的设备类型是DBT_DEVTYP_DEVICEINTERFACE。但我在另一个地方看到一种重载WindowProc的方法,对同一mass storage检测到的类型是DBT_DEVTYP_VOLUME。
问题 1):WriteFile写入失败,返回错误87,拒绝访问。尝试了网上所能找到的所有解决方法都没能解决我的问题。比如什么设备路径,,缓存区大小,,异步。等等。
问题2):我在使用SetupDixx函数检测设备时,插入mass storage设备程序会接收到两次设备插入,,
一个是 : USB\VID_0951&PID_1666\08606E6D401FBEC1670A536A。
还有一个是USBSTOR\DISK&VEN....,我没有对USBSTOR这个设备进行处理,,,这可能是导致我写入失败的原因吗?
问题3): 在检测设备的插拔时(mass storage),使用SetupDixxx类的API函数检测到的设备类型是DBT_DEVTYP_DEVICEINTERFACE。但我在另一个地方看到一种重载WindowProc的方法,对同一mass storage检测到的类型是DBT_DEVTYP_VOLUME。
已退回5积分