wince设备被识别为U盘问题

时间:2022-01-19 07:05:51
大家好。
我的开发平台是S3C2410+WINCE5.0,目的是想让WINCE设备通过USB线接到PC时被识别为U盘。
我按照网上查的资料把相关的注册表项都改了,比如:
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
   "DefaultClientDriver"=- ; erase previous default 
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
   "DefaultClientDriver"="Mass_Storage_Class"

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
   "Dll"="usbmsfn.dll"
   "InterfaceSubClass"=dword:06
   "InterfaceProtocol"=dword:50
   "DeviceName"="DSK1:"
   "FriendlyName"="Mass Storage"
; idVendor must be changed. 045E belongs to Microsoft and is only to be used for 
; prototype devices in your labs. Visit http://www.usb.org to obtain a vendor id.
   "idVendor"=dword:0547
   "Manufacturer"="Generic Manufacturer (PROTOTYPE--Remember to change idVendor)"
   "idProduct"=dword:2720
   "Product"="Generic Mass Storage (PROTOTYPE--Remember to change idVendor)"
   "bcdDevice"=dword:0
等等。
在添加组件的时候也选上core  os  service下面那个usb  host  support,usb  storeage  class  driver,在Catalog Items View中还选择”Device Drivers”->”USB Function”->”USB Function Clients”->”Mass Storage”。但是还是没起作用。
    碰到的问题是:插上USB时,串口会打印一系列信息,从这些信息可以看出sc2410_usb_ser.c和sc2410_usb_hw.c都运行到了,但是在“设备管理器”里看到的确是“wince usb device”,并没有被识别为mass storage。感觉好象usbmsfn.dll根本没有起作用,因为bot.cpp里的调试信息并没被打印出来,而从source文件看bot.cpp是构成usbmsfn.dll的组成部分。如果我把注册表项:[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\USB]
"Dll"="sc2410_usb_ser.Dll"  
"IoBase"=dword:B1200000
"Irq"=dword:B
"IoLen"=dword:130
"Tsp"="Unimodem.dll"
"DeviceArrayIndex"=dword:0
"Prefix"="COM"
"Order"=dword:2
"DeviceType"=dword:0
"FriendlyName"="SC2410 USB Cable:"
; Eliminate flow control bit
"DevConfig"=hex: 10,00,00,00,05,00,00,00,00,01,00,00,00,4B,00,00,00,00,08,00,00,00,00,00,00
注释掉的话,插上USB,串口没有任何调试信息输出,PC机显示无法识别的USB设备。
   我的疑惑是:(1)usbmsfn.dll到底和sc2410_usb_ser.dll有没有关系?我的理解是usbmsfn.dll是MDD层的东西,它应该要调用底层的东西,底层的东西是不是在BSP包smdk2410\DRIVERS\USB\FUNCTION里,但是这个文件夹里又只有sc2410_usb_hw.c和sc2410_usb_ser.c,这两个文件是生成sc2410_usb_ser.dll的。
(2)怎么让usbmsfn.dll被正确加载并被调用?让程序跑到bot.cpp里?感觉要是跑到bot.cpp里应该就快成功了。插上USB后wince的整个调用机制是怎样的?
   
   初次到这里来,没什么积分,USB也是刚开始接触,希望大家能大力支持。非常感谢。








48 个解决方案

#1


自己顶一下.

#2


看一下你的.bat文件设置,是否设置成USB的驱动为wince usb device而非MASS STORAGE,
PC没有把它识别成MASS STORAGE是由于描述符不是MASS STORAGE的。也就是MDD层没有调用MASS STORAGE的代码。
或者是你的USB代码将其设置成wince usb device了?

#3


谢谢Veabol.
看哪个地方的.bat文件呢?我的理解是把注册表改成"DefaultClientDriver"="Mass_Storage_Class"就应该调用MASS STORAGE的代码 。我感觉usbmsfn.dll压根就没有运行起来,usbmsfn.dll是不是MDD层和PDD层都包含了?

#4


BSP目录下的.bat文件设置了一些变量,有可能会对你的驱动有些影响,(我有在.bat文件中加变量来控制我的代码)。
usbmsfn.dll应该是和PDD层没什么关系,系统会先获取"DefaultClientDriver"来决定是否加载usbmsfn.dll,启动WINCE后你看下这个值,虽然你设置了"DefaultClientDriver"="Mass_Storage_Class",但是是否其它地方又改了它,所以你在WINCE下看到的才是最终的。

#5


启动WINCE后我看了DefaultClientDriver的确是Mass_Storage_Class,而且在Windows目录下也有usbmsfn.dll,但是PC上还是显示"无法识别的USB设备".
   usbmsfn.dll和sc2410_usb_ser.dll是不是有关系呢?我看每次插入USB时,sc2410_usb_ser.dll里的代码都会被调用(调试信息显示:
 ++SC2400_USB_Init
 HW_USBClocks::IDLE
 [DMA3 is Stopped]
……
   但是usbmsfn.dll中的信息始终打不出来。我有个疑问:usbmsfn.dll和PDD层没关系的话,它是怎么和具体的底层硬件关联上的呢?谢谢。

#6


usbmsfn.dll是MDD层调用的,而MDD层又和PDD层交互,所以如果不把usbmsfn.dll归为MDD则和PDD是间接的关系。

看下你的sc2410_usb_ser.dll代码吧,看名字就像是个serial的驱动,也许并不是标准的PDD代码,即不能随意更改serial和mass storage的模式。

#7


我看了一下sc2410_usb_ser.dll代码, 的确象是serial的驱动.
实现MASS STORAGE的PDD层代码是不是在SMDK2410\DRIVERS\USB\FUCTION目录下?这里面主要的文件就只有sc2410_usb_hw.c和sc2410_usb_ser.c,都不象是实现MASS STORAGE的,难道是我的BSP包里缺少文件?
但是我看其他的BSP包,比如2440的,在SMDK2440\DRIVERS\USB\FUCTION目录下也是只有sc2440_usb_hw.c和sc2440_usb_ser.c这两个文件嘛.

#8


刚才看了下QQ2440的BSP,USB部分的确像是serial的,连访问的函数都是COM_Init之类的。
如果想实现mass storage之类的功能要具有UfnPdd_Init等函数。
不知道是不是需要自己重新写代码,有人做过吗?
我的BSP是自带这些代码的。
你可以看下\WINCE500\PUBLIC\COMMON\OAK\DRIVERS\USBFN\CONTROLLER\NET2280中的代码,类似于这些内容。

#9


非常感谢,我先看下代码,不清楚再来请教.

#10


我有点迷糊了,在c:\WINCE500\PUBLIC\COMMON\OAK\CSP\ARM\SAMSUNG\S3C2410X\USBFUNCTION这个目录下有sc2410pdd.cpp,这里面就有Vealbol提到的UFN_Init等函数了.可是这个目录下的东西都是安装PB的时候就自带的,和我的BSP包并没有关系啊.这个目录对MASS STORAGE起不起作用呢?

#11


引用 10 楼 wsbighead 的回复:
我有点迷糊了,在c:\WINCE500\PUBLIC\COMMON\OAK\CSP\ARM\SAMSUNG\S3C2410X\USBFUNCTION这个目录下有sc2410pdd.cpp,这里面就有Vealbol提到的UFN_Init等函数了.可是这个目录下的东西都是安装PB的时候就自带的,和我的BSP包并没有关系啊.这个目录对MASS STORAGE起不起作用呢?

当然不起作用了,那只是一个sample
先了解一下usb的结构吧

#12


引用 10 楼 wsbighead 的回复:
我有点迷糊了,在c:\WINCE500\PUBLIC\COMMON\OAK\CSP\ARM\SAMSUNG\S3C2410X\USBFUNCTION这个目录下有sc2410pdd.cpp,这里面就有Vealbol提到的UFN_Init等函数了.可是这个目录下的东西都是安装PB的时候就自带的,和我的BSP包并没有关系啊.这个目录对MASS STORAGE起不起作用呢?


那你复制过来到你的BSP下边,再针对你的板子做些修改应该就可以了

#13


谢谢veabol的提示.现在我的usbmsfn.dll终于跑起来了.但是调试信息里却出现:
STORE_Init: failed to open store DSK1:; error = 4319
…… ……
还是无法识别为U盘。和FLASH DRIVER有关的注册表项是:
HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDrv] 
    "Dll"="FLASHDRV.dll" 
    "Prefix"="DSK" 
    "Index" =dword:1        
    "Order"=dword:0    
    "Profile"="FlashDrv" 
    "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" 
    "MountFlags"=dword:10 
    "BootPhase"=dword:0 
感觉象是注册表项有问题,或者和FLASH驱动有关。

#14


自己顶下.兄弟们碰到这种问题怎么解决的啊?

#15


关注中,也想做这个功能,你现在就是把pubilc下代码直接copy到platform下吗??可能不行吧?是不是很合文件系统有关呢?也就是说pc访问的是flash的那块空间呢??

#16


不用COPY,可以直接在PUBLIC下编译.

#17


我觉得是不是应该在pc下还有做个驱动呢??因为如果usb-serial,是需要在pc下装个驱动的??现在这块也不是很清楚了,楼主弄好了一定要分享下呀!!

#18


PC端肯定不用装驱动的.弄好一定分享.

#19


copy到BSP里边编译会快一点。
STORE_Init: failed to open store DSK1:; error = 4319 

查看一下4319对应的是什么错误

#20


是OpenStore()函数产生的错误,无法打开DSK1.我也试过DSK0\DSK2等,都不行.
我的NAND FLASH有3个分区:BOOTLOADER, WINCE(Binfs),EXTPartition(Fat),是不是跟多个分区有关系?

#21


EXTPartition(Fat)
这个的注册表中index值是多少?对应的就要设置DSK几

#22


我怎么觉得注册表中的index值是与整个NAND FLASH对应的. 比如:NAND FLASH为DSK0, 而SD卡为DSK1.
NAND FLASH下的分区还可以设置为DSK几吗?怎么弄的?

#23


我们用USB做从时候注意连接ActiveSyc,没当做U盘,关注学习

#24


引用 23 楼 yamafe 的回复:
我们用USB做从时候注意连接ActiveSyc,没当做U盘,关注学习


真如楼上所说我们在用activesync时不是也在pc端装了一个驱动??那么现在做usb-mass storage还能用activesync驱动吗??

那个DSK能直接知道nand的分区情况吗?这里还是有问题的??

#25


STORE_Init: failed to open store DSK1:; error = 4319 
这个错误是不是还和HIVE注册表有关?因为HIVE注册表是存在NAND FLASH上的,会不会因为这个open store失败?

#26


NAND FLASH也可以设置成多分FAT分区,每个用index来修改一下dsk几,
我试过HIVE注册表的盘符当成mass storage,是可以的

#27


怎么设成多个FAT分区呢?是多加几个类似
HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDrv] 
    "Dll"="FLASHDRV.dll" 
    "Prefix"="DSK" 
    "Index" =dword:1        
的注册表项吗?

#28


注册表肯定要多加几项,并且应该是驱动也需要支持的吧,至少驱动要知道各个分区是FLASH的哪个地址范围。
如果你仅仅想做U盘的话,只要WINCE下有一个FAT就可以了,没必要做多个。

#29


恩,我意思是想知道DSK的INDEX和NAND FLASH的分区有没有关系,如果有,是怎么关联的.

#30


我现在把HIVE注册表去掉了,USB接上PC时,open store终于成功了, WINCE上Nand Flash的盘符也消失了,但在PC上还是认不到U盘, USB DEVICE那有个感叹号. 我用USB HOUND抓数据发现set config fail, 是什么原因导致set config失败呢?

#31


应该是你的设备没有返回set config成功吧
数据线不稳定或者是USB驱动的问题。

#32


to veabol:
你当初做WINCE识别为U盘, NAND FLASH是不是也有BINFS 和FAT两种格式的分区?而只把FAT分区当成U盘显示在PC上?

#33


引用 32 楼 wsbighead 的回复:
to veabol:
你当初做WINCE识别为U盘, NAND FLASH是不是也有BINFS 和FAT两种格式的分区?而只把FAT分区当成U盘显示在PC上?

是的,有BINFS和FAT,U盘只显示FAT

#34


这个问题确实很郁闷 !我下午试了下,我的也不行!串口的调试信息是这样的:
ERROR: f:\wince500\public\common\oak\drivers\usbfn\class\storage\transport\bot\bot.cpp line 907: UsbMsFn!BOT_DeviceNotify: Failed to open store
 还不知道怎么回事?楼主很搞好了吗??

#35


我把HIVE注册表去掉这个问题是没有了.但是还是不能识别为U盘,插上USB后, USB主机多半会连续发4个RESET,很奇怪. 如果不发那么多RESET的话就会正常走GET DISCRIPTOR SET ADDRESS等步骤,但会在SET CONFIG的时候失败.

#36


楼主呢?问题还解决了??我今天也搞这个问题一起看看怎么回事呀??

#37


还没解决.老是在SET CONFIG的时候失败, 而且在PC机的"设备"里出现"windows CE USB devices",这里面又有带感叹号的"Anchor USB EZ-Link cable". 照理说如果加载了MASS STORAGE的驱动,PC机应该认不出来这是个WINCE DEVICE吧?郁闷

#38


引用 35 楼 wsbighead 的回复:
我把HIVE注册表去掉这个问题是没有了.但是还是不能识别为U盘,插上USB后, USB主机多半会连续发4个RESET,很奇怪. 如果不发那么多RESET的话就会正常走GET DISCRIPTOR SET ADDRESS等步骤,但会在SET CONFIG的时候失败.

我也是这个问题

#39


有没有解决了这个问题的兄弟啊?急啊

#40


从调试信息看代码已经运行到ProcessSetConfiguration()函数中,也没看到有什么异常. 但为什么BUS HOUND总是报"set config fail"呢??

#41


顶 留名

#42


哈哈,终于搞定了,是我之前装了个同步软件的驱动影响的.散分了.

#43


还有个问题,当我把USB线插上的时候,WINCE上NAND FLASH的盘符消失,同时PC上显示U盘盘符;但是当我拔掉USB线时,PC上的盘符小时,而WINCE上的盘符却没有显示出来,这个问题怎么解决啊?

#44


引用 42 楼 wsbighead 的回复:
哈哈,终于搞定了,是我之前装了个同步软件的驱动影响的.散分了.

楼主分享下经验呀?这个同步软件是什么?activesync吗?你是怎么解决的呢??

#45


对. 卸载驱动或者改IDVENDOR都可以解决的. 因为PC已经把同步软件的驱动和IDVENDOR绑定了.

#46


引用 30 楼 wsbighead 的回复:
我现在把HIVE注册表去掉了,USB接上PC时,open store终于成功了, WINCE上Nand Flash的盘符也消失了,但在PC上还是认不到U盘, USB DEVICE那有个感叹号. 我用USB HOUND抓数据发现set config fail, 是什么原因导致set config失败呢?

请教下 你是怎么把hive注册表去掉的??这是什么意思?是不是组件中去掉即可!

#47


对.

#48


我想弄一个WINCE6.0 和PC 通过USB线通信,PC上和WINCE6.0上各一个软件,实现互通数据。。。没头绪呀。。。

#1


自己顶一下.

#2


看一下你的.bat文件设置,是否设置成USB的驱动为wince usb device而非MASS STORAGE,
PC没有把它识别成MASS STORAGE是由于描述符不是MASS STORAGE的。也就是MDD层没有调用MASS STORAGE的代码。
或者是你的USB代码将其设置成wince usb device了?

#3


谢谢Veabol.
看哪个地方的.bat文件呢?我的理解是把注册表改成"DefaultClientDriver"="Mass_Storage_Class"就应该调用MASS STORAGE的代码 。我感觉usbmsfn.dll压根就没有运行起来,usbmsfn.dll是不是MDD层和PDD层都包含了?

#4


BSP目录下的.bat文件设置了一些变量,有可能会对你的驱动有些影响,(我有在.bat文件中加变量来控制我的代码)。
usbmsfn.dll应该是和PDD层没什么关系,系统会先获取"DefaultClientDriver"来决定是否加载usbmsfn.dll,启动WINCE后你看下这个值,虽然你设置了"DefaultClientDriver"="Mass_Storage_Class",但是是否其它地方又改了它,所以你在WINCE下看到的才是最终的。

#5


启动WINCE后我看了DefaultClientDriver的确是Mass_Storage_Class,而且在Windows目录下也有usbmsfn.dll,但是PC上还是显示"无法识别的USB设备".
   usbmsfn.dll和sc2410_usb_ser.dll是不是有关系呢?我看每次插入USB时,sc2410_usb_ser.dll里的代码都会被调用(调试信息显示:
 ++SC2400_USB_Init
 HW_USBClocks::IDLE
 [DMA3 is Stopped]
……
   但是usbmsfn.dll中的信息始终打不出来。我有个疑问:usbmsfn.dll和PDD层没关系的话,它是怎么和具体的底层硬件关联上的呢?谢谢。

#6


usbmsfn.dll是MDD层调用的,而MDD层又和PDD层交互,所以如果不把usbmsfn.dll归为MDD则和PDD是间接的关系。

看下你的sc2410_usb_ser.dll代码吧,看名字就像是个serial的驱动,也许并不是标准的PDD代码,即不能随意更改serial和mass storage的模式。

#7


我看了一下sc2410_usb_ser.dll代码, 的确象是serial的驱动.
实现MASS STORAGE的PDD层代码是不是在SMDK2410\DRIVERS\USB\FUCTION目录下?这里面主要的文件就只有sc2410_usb_hw.c和sc2410_usb_ser.c,都不象是实现MASS STORAGE的,难道是我的BSP包里缺少文件?
但是我看其他的BSP包,比如2440的,在SMDK2440\DRIVERS\USB\FUCTION目录下也是只有sc2440_usb_hw.c和sc2440_usb_ser.c这两个文件嘛.

#8


刚才看了下QQ2440的BSP,USB部分的确像是serial的,连访问的函数都是COM_Init之类的。
如果想实现mass storage之类的功能要具有UfnPdd_Init等函数。
不知道是不是需要自己重新写代码,有人做过吗?
我的BSP是自带这些代码的。
你可以看下\WINCE500\PUBLIC\COMMON\OAK\DRIVERS\USBFN\CONTROLLER\NET2280中的代码,类似于这些内容。

#9


非常感谢,我先看下代码,不清楚再来请教.

#10


我有点迷糊了,在c:\WINCE500\PUBLIC\COMMON\OAK\CSP\ARM\SAMSUNG\S3C2410X\USBFUNCTION这个目录下有sc2410pdd.cpp,这里面就有Vealbol提到的UFN_Init等函数了.可是这个目录下的东西都是安装PB的时候就自带的,和我的BSP包并没有关系啊.这个目录对MASS STORAGE起不起作用呢?

#11


引用 10 楼 wsbighead 的回复:
我有点迷糊了,在c:\WINCE500\PUBLIC\COMMON\OAK\CSP\ARM\SAMSUNG\S3C2410X\USBFUNCTION这个目录下有sc2410pdd.cpp,这里面就有Vealbol提到的UFN_Init等函数了.可是这个目录下的东西都是安装PB的时候就自带的,和我的BSP包并没有关系啊.这个目录对MASS STORAGE起不起作用呢?

当然不起作用了,那只是一个sample
先了解一下usb的结构吧

#12


引用 10 楼 wsbighead 的回复:
我有点迷糊了,在c:\WINCE500\PUBLIC\COMMON\OAK\CSP\ARM\SAMSUNG\S3C2410X\USBFUNCTION这个目录下有sc2410pdd.cpp,这里面就有Vealbol提到的UFN_Init等函数了.可是这个目录下的东西都是安装PB的时候就自带的,和我的BSP包并没有关系啊.这个目录对MASS STORAGE起不起作用呢?


那你复制过来到你的BSP下边,再针对你的板子做些修改应该就可以了

#13


谢谢veabol的提示.现在我的usbmsfn.dll终于跑起来了.但是调试信息里却出现:
STORE_Init: failed to open store DSK1:; error = 4319
…… ……
还是无法识别为U盘。和FLASH DRIVER有关的注册表项是:
HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDrv] 
    "Dll"="FLASHDRV.dll" 
    "Prefix"="DSK" 
    "Index" =dword:1        
    "Order"=dword:0    
    "Profile"="FlashDrv" 
    "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" 
    "MountFlags"=dword:10 
    "BootPhase"=dword:0 
感觉象是注册表项有问题,或者和FLASH驱动有关。

#14


自己顶下.兄弟们碰到这种问题怎么解决的啊?

#15


关注中,也想做这个功能,你现在就是把pubilc下代码直接copy到platform下吗??可能不行吧?是不是很合文件系统有关呢?也就是说pc访问的是flash的那块空间呢??

#16


不用COPY,可以直接在PUBLIC下编译.

#17


我觉得是不是应该在pc下还有做个驱动呢??因为如果usb-serial,是需要在pc下装个驱动的??现在这块也不是很清楚了,楼主弄好了一定要分享下呀!!

#18


PC端肯定不用装驱动的.弄好一定分享.

#19


copy到BSP里边编译会快一点。
STORE_Init: failed to open store DSK1:; error = 4319 

查看一下4319对应的是什么错误

#20


是OpenStore()函数产生的错误,无法打开DSK1.我也试过DSK0\DSK2等,都不行.
我的NAND FLASH有3个分区:BOOTLOADER, WINCE(Binfs),EXTPartition(Fat),是不是跟多个分区有关系?

#21


EXTPartition(Fat)
这个的注册表中index值是多少?对应的就要设置DSK几

#22


我怎么觉得注册表中的index值是与整个NAND FLASH对应的. 比如:NAND FLASH为DSK0, 而SD卡为DSK1.
NAND FLASH下的分区还可以设置为DSK几吗?怎么弄的?

#23


我们用USB做从时候注意连接ActiveSyc,没当做U盘,关注学习

#24


引用 23 楼 yamafe 的回复:
我们用USB做从时候注意连接ActiveSyc,没当做U盘,关注学习


真如楼上所说我们在用activesync时不是也在pc端装了一个驱动??那么现在做usb-mass storage还能用activesync驱动吗??

那个DSK能直接知道nand的分区情况吗?这里还是有问题的??

#25


STORE_Init: failed to open store DSK1:; error = 4319 
这个错误是不是还和HIVE注册表有关?因为HIVE注册表是存在NAND FLASH上的,会不会因为这个open store失败?

#26


NAND FLASH也可以设置成多分FAT分区,每个用index来修改一下dsk几,
我试过HIVE注册表的盘符当成mass storage,是可以的

#27


怎么设成多个FAT分区呢?是多加几个类似
HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDrv] 
    "Dll"="FLASHDRV.dll" 
    "Prefix"="DSK" 
    "Index" =dword:1        
的注册表项吗?

#28


注册表肯定要多加几项,并且应该是驱动也需要支持的吧,至少驱动要知道各个分区是FLASH的哪个地址范围。
如果你仅仅想做U盘的话,只要WINCE下有一个FAT就可以了,没必要做多个。

#29


恩,我意思是想知道DSK的INDEX和NAND FLASH的分区有没有关系,如果有,是怎么关联的.

#30


我现在把HIVE注册表去掉了,USB接上PC时,open store终于成功了, WINCE上Nand Flash的盘符也消失了,但在PC上还是认不到U盘, USB DEVICE那有个感叹号. 我用USB HOUND抓数据发现set config fail, 是什么原因导致set config失败呢?

#31


应该是你的设备没有返回set config成功吧
数据线不稳定或者是USB驱动的问题。

#32


to veabol:
你当初做WINCE识别为U盘, NAND FLASH是不是也有BINFS 和FAT两种格式的分区?而只把FAT分区当成U盘显示在PC上?

#33


引用 32 楼 wsbighead 的回复:
to veabol:
你当初做WINCE识别为U盘, NAND FLASH是不是也有BINFS 和FAT两种格式的分区?而只把FAT分区当成U盘显示在PC上?

是的,有BINFS和FAT,U盘只显示FAT

#34


这个问题确实很郁闷 !我下午试了下,我的也不行!串口的调试信息是这样的:
ERROR: f:\wince500\public\common\oak\drivers\usbfn\class\storage\transport\bot\bot.cpp line 907: UsbMsFn!BOT_DeviceNotify: Failed to open store
 还不知道怎么回事?楼主很搞好了吗??

#35


我把HIVE注册表去掉这个问题是没有了.但是还是不能识别为U盘,插上USB后, USB主机多半会连续发4个RESET,很奇怪. 如果不发那么多RESET的话就会正常走GET DISCRIPTOR SET ADDRESS等步骤,但会在SET CONFIG的时候失败.

#36


楼主呢?问题还解决了??我今天也搞这个问题一起看看怎么回事呀??

#37


还没解决.老是在SET CONFIG的时候失败, 而且在PC机的"设备"里出现"windows CE USB devices",这里面又有带感叹号的"Anchor USB EZ-Link cable". 照理说如果加载了MASS STORAGE的驱动,PC机应该认不出来这是个WINCE DEVICE吧?郁闷

#38


引用 35 楼 wsbighead 的回复:
我把HIVE注册表去掉这个问题是没有了.但是还是不能识别为U盘,插上USB后, USB主机多半会连续发4个RESET,很奇怪. 如果不发那么多RESET的话就会正常走GET DISCRIPTOR SET ADDRESS等步骤,但会在SET CONFIG的时候失败.

我也是这个问题

#39


有没有解决了这个问题的兄弟啊?急啊

#40


从调试信息看代码已经运行到ProcessSetConfiguration()函数中,也没看到有什么异常. 但为什么BUS HOUND总是报"set config fail"呢??

#41


顶 留名

#42


哈哈,终于搞定了,是我之前装了个同步软件的驱动影响的.散分了.

#43


还有个问题,当我把USB线插上的时候,WINCE上NAND FLASH的盘符消失,同时PC上显示U盘盘符;但是当我拔掉USB线时,PC上的盘符小时,而WINCE上的盘符却没有显示出来,这个问题怎么解决啊?

#44


引用 42 楼 wsbighead 的回复:
哈哈,终于搞定了,是我之前装了个同步软件的驱动影响的.散分了.

楼主分享下经验呀?这个同步软件是什么?activesync吗?你是怎么解决的呢??

#45


对. 卸载驱动或者改IDVENDOR都可以解决的. 因为PC已经把同步软件的驱动和IDVENDOR绑定了.

#46


引用 30 楼 wsbighead 的回复:
我现在把HIVE注册表去掉了,USB接上PC时,open store终于成功了, WINCE上Nand Flash的盘符也消失了,但在PC上还是认不到U盘, USB DEVICE那有个感叹号. 我用USB HOUND抓数据发现set config fail, 是什么原因导致set config失败呢?

请教下 你是怎么把hive注册表去掉的??这是什么意思?是不是组件中去掉即可!

#47


对.

#48


我想弄一个WINCE6.0 和PC 通过USB线通信,PC上和WINCE6.0上各一个软件,实现互通数据。。。没头绪呀。。。