WINCE6.0设备在PC上识别成U盘的问题

时间:2022-07-23 18:02:01
当设备通过USB连接到PC时,想把设备当成U盘来用,作了如下一下工作,但是有问题,
请大家帮我看看,是哪里的问题。

添加了相关的组件:
CORRE OS-->CEBASE-->Core OS Services-->USB Function Driver 和USB Storage Class Driver
Device Drivers-->USB Funciton-->USB Function Clients-->Mass Storage

注册表增加了如下
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
  "Dll"="usbmsfn.dll"
  "InterfaceSubClass"=dword:06
  "InterfaceProtocol"=dword:50
  "DeviceName"="DSK1:"
  "FriendlyName"="Mass Storage"
  "idVendor"=dword:0228
  "Manufacturer"="TECH"
  "idProduct"=dword:0228
  "Product"="Wince"
  "bcdDevice"=dword:0
  "Removable"=dword:1   

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
   "DefaultClientDriver"="Mass_Storage_Class" ; 

通过以上的修改,
1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑”
中会出现“可移动磁盘”,但无法访问它(无法格式化);
2  把插入设备的SD卡当成U盘:DeviceName改为“DSK1:”,当把设备连接到PC(这时候没有插入SD卡),
在PC的“设备管理器”中可以看到“USB Mass Storage Device”,当在设备上插入SD卡时,
“设备管理器”中的“USB Mass Storage Device”会出现一个黄色的感叹号,“我的电脑”
中也不会出现“可移动磁盘”。

54 个解决方案

#1


可以这样做?弄出来要指点一下啊。以前有人在论坛提过。

#2


[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
   "Dll"="usbmsfn.dll"
   "InterfaceSubClass"=dword:06 
   "InterfaceProtocol"=dword:50 
   "DeviceName"="DSK1:" 
   "FriendlyName"="Mass Storage"
   "idVendor"=dword:0405
   "Manufacturer"="Generic Manufacturer (LifeLink)"
   "idProduct"=dword:AAAA
   "Product"="Generic Mass Storage (USB Smart Card)"
   "bcdDevice"=dword:0

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
   "DefaultClientDriver"=- ; erase previous default
   ;"DefaultClientDriver"="Serial_Class"
   "DefaultClientDriver"="Mass_Storage_Class"  ;Mass Storage

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class]
    "DLL"="USBMSC.DLL"
    "Prefix"="DSK"
    "ResetTimeout"=dword:4000 ; msec
    "CommandBlockTimeout"=dword:4000
    "CommandStatusTimeout"=dword:4000
[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class\2]
    "DLL"="USBDISK6.DLL"
    "Prefix"="DSK"
    "FSD"="UDFS.DLL"
    "Folder"="USB Disk"
    "IOCTL"=dword:4
[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class\6]
    "DLL"="USBDISK6.DLL"
    "Prefix"="DSK"
    "FSD"="FATFS.DLL"
    "Folder"="USB Disk"
    "IOCTL"=dword:4
    "MediaPollInterval"=dword:1250; msec
    "ReadSectorTimeout"=dword:2000
    "WriteSectorTimeout"=dword:2000
    "ScsiCommandTimeout"=dword:5000
    "UnitAttnRepeat"=dword:10

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class]
   "FriendlyName"=LOC_USBFN_SERIAL_NAME
   "idVendor"=dword:0547
   "Manufacturer"=LOC_USBFN_SERIAL_MANUFACTURER
   "idProduct"=dword:2720
   "Product"=LOC_USBFN_SERIAL_PRODUCT
   "Index"=dword:9

 "DeviceName"="DSK1:" 这个里面的 DSK1 对应的是你的设备管理器里面加载的设备,要是 Flash 为 DSK1 的话,那么连到电脑上就是你的NandFlash,如果是 SD 卡加载为 DSK1 的话,那么连到你电脑上的就是 SD 卡了。
  如果你这样配置还不正确,那么就是你BSP的 Function 驱动可能有问题了。 我用的是 S3C2440,Samsung 官方 BSP 就有问题。

#3


gooogleman:但愿我能搞出来,因为我现在不能确认BSP的FLASH驱动部分及BSP中的注册表这个功能的设置都是正确的
xajhuang:多谢你出手呀,我测试看看,不过我的平台不是三星的

#4


不要查 Flash 驱动了。要是 SD 卡能行 Flash 不行才能说明 Flash 驱动有问题,要是 SD 卡 和 Flash 都不行,就是 USB 驱动或者注册表配置问题。

#5


xajhuang:
我现在的情况就是这样:
1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑” 
中会出现“可移动磁盘”,但无法访问它(无法格式化); 
2  把插入设备的SD卡当成U盘:DeviceName改为“DSK1:”,当把设备连接到PC(这时候没有插入SD卡), 
在PC的“设备管理器”中可以看到“USB Mass Storage Device”,当在设备上插入SD卡时, 
“设备管理器”中的“USB Mass Storage Device”会出现一个黄色的感叹号,“我的电脑” 
中也不会出现“可移动磁盘”,有时候插上SD卡后,“设备管理器”中的出现黄色感叹号后,
“USB Mass Storage Device”这一项都没有了。 

#6


第一种情况我遇到过 但是我把 USB 驱动修改后就好了。 第二种没有碰到过。

#7


修改注册表如下所示,但上述问题还是同样存在。

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class] 
  "Dll"="usbmsfn.dll" 
  "InterfaceSubClass"=dword:06 
  "InterfaceProtocol"=dword:50 
  "DeviceName"="DSK1:" 
  "FriendlyName"="Mass Storage" 
  "idVendor"=dword:0405 
  "Manufacturer"="Generic Manufacturer (LifeLink)" 
  "idProduct"=dword:AAAA 
  "Product"="Generic Mass Storage (USB Smart Card)" 
  "bcdDevice"=dword:0 

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers] 
  "DefaultClientDriver"=- ; erase previous default 
  ;"DefaultClientDriver"="Serial_Class" 
  "DefaultClientDriver"="Mass_Storage_Class"  ;Mass Storage 

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\8\Mass_Storage_Class]
   "DLL"="USBMSC.DLL"
   "Prefix"="DSK"

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class]
   "DLL"="USBMSC.DLL"
   "Prefix"="DSK"

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class\2]
   "DLL"="USBDISK6.DLL"
   "Prefix"="DSK"
   "Folder"="USB Disk"
   "MediaPollInterval"=dword:432   ; Media poll interval (1250 ms)
   "ReadSectorTimeout"=dword:2710  ; Read sector timeout (10 s)
   "WriteSectorTimeout"=dword:2710 ; Read sector timeout (10 s)
   "ScsiCommandTimeout"=dword:1388 ; Command timeout (5 s)
   "UnitAttnRepeat"=dword:A        ; TEST UNIT READY repeat (reduce to 1 for large USB disk keys)
   "IOCTL"=dword:4
   "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class\6]
   "DLL"="USBDISK6.DLL"
   "Prefix"="DSK"
   "Folder"="USB Disk"
   "MediaPollInterval"=dword:432   ; Media poll interval (1250 ms)
   "ReadSectorTimeout"=dword:2710  ; Read sector timeout (10 s)
   "WriteSectorTimeout"=dword:2710 ; Read sector timeout (10 s)
   "ScsiCommandTimeout"=dword:1388 ; Command timeout (5 s)
   "UnitAttnRepeat"=dword:A        ; TEST UNIT READY repeat (reduce to 1 for large USB disk keys)
   "IOCTL"=dword:4
   "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"


#8


把USBFN这个两用的驱动看明白就可以实现了

#9


MARK!

#10


不要只看注册表,而是要看USB的驱动。

一般原厂bsp都不会实现USB MassStorage驱动的,必须自己实现或修改。这个不改好,你的注册表搞的再好都没用的。

#11


mark

#12


该回复于2010-08-02 15:35:53被版主删除

#13


该回复于2010-08-02 15:35:53被版主删除

#14


该回复于2010-08-02 15:35:53被版主删除

#15


楼上怎么搞的,多几次刷喽就封ID了

#16


to LinHanLao,

1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑” 
中会出现“可移动磁盘”,但无法访问它(无法格式化)

------>目前微软并没有实现  选择性的 expose一个partition到PC上,从你的描述看来,你的nand flash 应该有两个partition,第一个是binfs,第二个是fatfs,当你expose DSK0的时候,pc并不认识第一个分区 binfs,所以会pc会提示你的盘没有格式化,当你格式化的时候,okay,这个时候应该可以访问了,但是,你的binfs也就格式发成了FATFS,所以你下次再启动的时候,这个时候,wince是booting补起来的。

解决方案:重新修改  usb mass storag driver。(这个不是很难)

 
2  把插入设备的SD卡当成U盘:DeviceName改为“DSK1:”,当把设备连接到PC(这时候没有插入SD卡), 
在PC的“设备管理器”中可以看到“USB Mass Storage Device”,当在设备上插入SD卡时, 
“设备管理器”中的“USB Mass Storage Device”会出现一个黄色的感叹号,“我的电脑” 
中也不会出现“可移动磁盘”。

----->这个是微软的没实现这个功能,就是类似与 reader card的功能。微软当前的driver默认的情况下是假设你的SD card已经插上去了,所以说当你没有插入SD卡就启动 usb mass storage功能的话,现在在 Init的时候会出错。也就是会在设备管理器上出现 惊叹号。

解决方案   重新修改  usb mass storag driver。(这个可能有点困难)
          

#17


学习中

#18


To yangkunzhen:
谢谢你的回复,第二个问题,即使是在SD卡已经插上的情况下启动设备,也是一样的现象。

#19


引用 16 楼 yangkunzhen 的回复:
to LinHanLao, 

1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑” 
中会出现“可移动磁盘”,但无法访问它(无法格式化) 

------>目前微软并没有实现  选择性的 expose一个partition到PC上,从你的描述看来,你的nand flash 应该有两个partition,第一个是binfs,第二个是fatfs,当你expose DSK0的时候,pc并不认识第一个分区 binfs,所以会pc会提示你的盘没有格式化,当你…


牛,学习了。

#20


引用 16 楼 yangkunzhen 的回复:
to LinHanLao, 

1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑” 
中会出现“可移动磁盘”,但无法访问它(无法格式化) 

------>目前微软并没有实现  选择性的 expose一个partition到PC上,从你的描述看来,你的nand flash 应该有两个partition,第一个是binfs,第二个是fatfs,当你expose DSK0的时候,pc并不认识第一个分区 binfs,所以会pc会提示你的盘没有格式化,当你…


#21


不懂,up

#22


不懂,up

#23


to LinHanLao, 

 可能是PNP线程和ufn线程竞争的结果,也就是你的SD卡  会不停的dismount/mount,
把PNP线程的优先级调高些,try一下。(要是还不行,麻烦把你的log信息发出来)

[HKEY_LOCAL_MACHINE\System\StorageManager]
    "PNPThreadPrio256"=dword:63   

#24



请问以下:
如果想要把 WINCE5.0设备在PC上识别成U盘,
应该怎么处理呢?

WINCE5.0后WINCE6.0在添加这个功能的时候有什么区别?
有那些是需要自己修改的?



#25


学习。。。顶。。。

#26


还在学习,顶一下

#27


收藏了!mark一下!

#28


学习,收藏了

#29


学习,收藏了

#30


MARK

#31


学习了...

#32


顶顶顶

#33


汗。。。前两天要搞这东西,没搞定。。顶

#34


该回复于2009-10-22 14:47:28被版主删除

#35


引用 10 楼 shuiyan 的回复:
不要只看注册表,而是要看USB的驱动。

一般原厂bsp都不会实现USB MassStorage驱动的,必须自己实现或修改。这个不改好,你的注册表搞的再好都没用的。


老帖顶

USB MassStorage的驱动不是usbmsfn.dll吗

#36


引用 10 楼 shuiyan 的回复:
不要只看注册表,而是要看USB的驱动。

一般原厂bsp都不会实现USB MassStorage驱动的,必须自己实现或修改。这个不改好,你的注册表搞的再好都没用的。

是这样的,如果要开发usb massstorage还蛮麻烦的,不过关注中!帮楼主顶下!
不过yangkunzhen的方法似乎是可行的,有空试下!

#37


学习了....................

#38


引用 16 楼 yangkunzhen 的回复:
to LinHanLao,

1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑”
中会出现“可移动磁盘”,但无法访问它(无法格式化)

------>目前微软并没有实现  选择性的 expose一个partition到PC上,从你的描述看来,你的nand flash 应该有两个partition,第一个是binfs,第二个是fatfs,当你expose DSK0的时候,pc并不认识第一个分区 binfs,所以会pc会提示你的盘没有格式化,当你格式化的时候,okay,这个时候应该可以访问了,但是,你的binfs也就格式发成了FATFS,所以你下次再启动的时候,这个时候,wince是booting补起来的。

解决方案:重新修改  usb mass storag driver。(这个不是很难)


2  把插入设备的SD卡当成U盘:DeviceName改为“DSK1:”,当把设备连接到PC(这时候没有插入SD卡),
在PC的“设备管理器”中可以看到“USB Mass Storage Device”,当在设备上插入SD卡时,
“设备管理器”中的“USB Mass Storage Device”会出现一个黄色的感叹号,“我的电脑”
中也不会出现“可移动磁盘”。

----->这个是微软的没实现这个功能,就是类似与 reader card的功能。微软当前的driver默认的情况下是假设你的SD card已经插上去了,所以说当你没有插入SD卡就启动 usb mass storage功能的话,现在在 Init的时候会出错。也就是会在设备管理器上出现 惊叹号。

解决方案  重新修改  usb mass storag driver。(这个可能有点困难)
         


牛人,学习了

#39


我最近也在研究这个方面的内容。你的库估计有问题。我将我的库给你一份吧。

#40


过来学习下

#41


引用 6 楼 xajhuang 的回复:
第一种情况我遇到过 但是我把 USB 驱动修改后就好了。 第二种没有碰到过。

  6楼道兄弟,第一种情况是要改USB驱动哪里,可否指点下?

#42


该回复于2011-03-29 16:20:00被版主删除

#43


正是我要弄的 但是好像没看懂,先收藏了

#44


该回复于2011-04-27 17:23:03被版主删除

#45


我在Mini2440上实现了这个功能,但我需要遇到另一个问题:
  我的程序中会读取SD卡上的文件,但连接上电脑后,“Storage Card”就不存在,我需要检测到已连接上电脑而停止读取文件,当从电脑上卸载后能自动重新挂接上SD卡。请问各位大大有什么办法没有?

注册表如下:
REGEDIT4

[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"=dword:534D
"Manufacturer"="Nikersoft Group"
"idProduct"=dword:2011
"Product"="SM20200 USB Disk"
"bcdDevice"=dword:0

#46


mark

#47


试试修改下面的配置,在BSP的根目录里的BAT文件
@REM If you want to exclude USB Function driver in BSP. Set this variable
set BSP_NOUSBFN=
@REM This select default function driver
@REM set BSP_USBFNCLASS=SERIAL
set BSP_USBFNCLASS=MASS_STORAGE

#48


LZ解决了么?

#49


mark

#50


学习,标记。

#1


可以这样做?弄出来要指点一下啊。以前有人在论坛提过。

#2


[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
   "Dll"="usbmsfn.dll"
   "InterfaceSubClass"=dword:06 
   "InterfaceProtocol"=dword:50 
   "DeviceName"="DSK1:" 
   "FriendlyName"="Mass Storage"
   "idVendor"=dword:0405
   "Manufacturer"="Generic Manufacturer (LifeLink)"
   "idProduct"=dword:AAAA
   "Product"="Generic Mass Storage (USB Smart Card)"
   "bcdDevice"=dword:0

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
   "DefaultClientDriver"=- ; erase previous default
   ;"DefaultClientDriver"="Serial_Class"
   "DefaultClientDriver"="Mass_Storage_Class"  ;Mass Storage

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class]
    "DLL"="USBMSC.DLL"
    "Prefix"="DSK"
    "ResetTimeout"=dword:4000 ; msec
    "CommandBlockTimeout"=dword:4000
    "CommandStatusTimeout"=dword:4000
[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class\2]
    "DLL"="USBDISK6.DLL"
    "Prefix"="DSK"
    "FSD"="UDFS.DLL"
    "Folder"="USB Disk"
    "IOCTL"=dword:4
[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class\6]
    "DLL"="USBDISK6.DLL"
    "Prefix"="DSK"
    "FSD"="FATFS.DLL"
    "Folder"="USB Disk"
    "IOCTL"=dword:4
    "MediaPollInterval"=dword:1250; msec
    "ReadSectorTimeout"=dword:2000
    "WriteSectorTimeout"=dword:2000
    "ScsiCommandTimeout"=dword:5000
    "UnitAttnRepeat"=dword:10

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class]
   "FriendlyName"=LOC_USBFN_SERIAL_NAME
   "idVendor"=dword:0547
   "Manufacturer"=LOC_USBFN_SERIAL_MANUFACTURER
   "idProduct"=dword:2720
   "Product"=LOC_USBFN_SERIAL_PRODUCT
   "Index"=dword:9

 "DeviceName"="DSK1:" 这个里面的 DSK1 对应的是你的设备管理器里面加载的设备,要是 Flash 为 DSK1 的话,那么连到电脑上就是你的NandFlash,如果是 SD 卡加载为 DSK1 的话,那么连到你电脑上的就是 SD 卡了。
  如果你这样配置还不正确,那么就是你BSP的 Function 驱动可能有问题了。 我用的是 S3C2440,Samsung 官方 BSP 就有问题。

#3


gooogleman:但愿我能搞出来,因为我现在不能确认BSP的FLASH驱动部分及BSP中的注册表这个功能的设置都是正确的
xajhuang:多谢你出手呀,我测试看看,不过我的平台不是三星的

#4


不要查 Flash 驱动了。要是 SD 卡能行 Flash 不行才能说明 Flash 驱动有问题,要是 SD 卡 和 Flash 都不行,就是 USB 驱动或者注册表配置问题。

#5


xajhuang:
我现在的情况就是这样:
1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑” 
中会出现“可移动磁盘”,但无法访问它(无法格式化); 
2  把插入设备的SD卡当成U盘:DeviceName改为“DSK1:”,当把设备连接到PC(这时候没有插入SD卡), 
在PC的“设备管理器”中可以看到“USB Mass Storage Device”,当在设备上插入SD卡时, 
“设备管理器”中的“USB Mass Storage Device”会出现一个黄色的感叹号,“我的电脑” 
中也不会出现“可移动磁盘”,有时候插上SD卡后,“设备管理器”中的出现黄色感叹号后,
“USB Mass Storage Device”这一项都没有了。 

#6


第一种情况我遇到过 但是我把 USB 驱动修改后就好了。 第二种没有碰到过。

#7


修改注册表如下所示,但上述问题还是同样存在。

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class] 
  "Dll"="usbmsfn.dll" 
  "InterfaceSubClass"=dword:06 
  "InterfaceProtocol"=dword:50 
  "DeviceName"="DSK1:" 
  "FriendlyName"="Mass Storage" 
  "idVendor"=dword:0405 
  "Manufacturer"="Generic Manufacturer (LifeLink)" 
  "idProduct"=dword:AAAA 
  "Product"="Generic Mass Storage (USB Smart Card)" 
  "bcdDevice"=dword:0 

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers] 
  "DefaultClientDriver"=- ; erase previous default 
  ;"DefaultClientDriver"="Serial_Class" 
  "DefaultClientDriver"="Mass_Storage_Class"  ;Mass Storage 

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\8\Mass_Storage_Class]
   "DLL"="USBMSC.DLL"
   "Prefix"="DSK"

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class]
   "DLL"="USBMSC.DLL"
   "Prefix"="DSK"

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class\2]
   "DLL"="USBDISK6.DLL"
   "Prefix"="DSK"
   "Folder"="USB Disk"
   "MediaPollInterval"=dword:432   ; Media poll interval (1250 ms)
   "ReadSectorTimeout"=dword:2710  ; Read sector timeout (10 s)
   "WriteSectorTimeout"=dword:2710 ; Read sector timeout (10 s)
   "ScsiCommandTimeout"=dword:1388 ; Command timeout (5 s)
   "UnitAttnRepeat"=dword:A        ; TEST UNIT READY repeat (reduce to 1 for large USB disk keys)
   "IOCTL"=dword:4
   "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class\6]
   "DLL"="USBDISK6.DLL"
   "Prefix"="DSK"
   "Folder"="USB Disk"
   "MediaPollInterval"=dword:432   ; Media poll interval (1250 ms)
   "ReadSectorTimeout"=dword:2710  ; Read sector timeout (10 s)
   "WriteSectorTimeout"=dword:2710 ; Read sector timeout (10 s)
   "ScsiCommandTimeout"=dword:1388 ; Command timeout (5 s)
   "UnitAttnRepeat"=dword:A        ; TEST UNIT READY repeat (reduce to 1 for large USB disk keys)
   "IOCTL"=dword:4
   "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"


#8


把USBFN这个两用的驱动看明白就可以实现了

#9


MARK!

#10


不要只看注册表,而是要看USB的驱动。

一般原厂bsp都不会实现USB MassStorage驱动的,必须自己实现或修改。这个不改好,你的注册表搞的再好都没用的。

#11


mark

#12


该回复于2010-08-02 15:35:53被版主删除

#13


该回复于2010-08-02 15:35:53被版主删除

#14


该回复于2010-08-02 15:35:53被版主删除

#15


楼上怎么搞的,多几次刷喽就封ID了

#16


to LinHanLao,

1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑” 
中会出现“可移动磁盘”,但无法访问它(无法格式化)

------>目前微软并没有实现  选择性的 expose一个partition到PC上,从你的描述看来,你的nand flash 应该有两个partition,第一个是binfs,第二个是fatfs,当你expose DSK0的时候,pc并不认识第一个分区 binfs,所以会pc会提示你的盘没有格式化,当你格式化的时候,okay,这个时候应该可以访问了,但是,你的binfs也就格式发成了FATFS,所以你下次再启动的时候,这个时候,wince是booting补起来的。

解决方案:重新修改  usb mass storag driver。(这个不是很难)

 
2  把插入设备的SD卡当成U盘:DeviceName改为“DSK1:”,当把设备连接到PC(这时候没有插入SD卡), 
在PC的“设备管理器”中可以看到“USB Mass Storage Device”,当在设备上插入SD卡时, 
“设备管理器”中的“USB Mass Storage Device”会出现一个黄色的感叹号,“我的电脑” 
中也不会出现“可移动磁盘”。

----->这个是微软的没实现这个功能,就是类似与 reader card的功能。微软当前的driver默认的情况下是假设你的SD card已经插上去了,所以说当你没有插入SD卡就启动 usb mass storage功能的话,现在在 Init的时候会出错。也就是会在设备管理器上出现 惊叹号。

解决方案   重新修改  usb mass storag driver。(这个可能有点困难)
          

#17


学习中

#18


To yangkunzhen:
谢谢你的回复,第二个问题,即使是在SD卡已经插上的情况下启动设备,也是一样的现象。

#19


引用 16 楼 yangkunzhen 的回复:
to LinHanLao, 

1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑” 
中会出现“可移动磁盘”,但无法访问它(无法格式化) 

------>目前微软并没有实现  选择性的 expose一个partition到PC上,从你的描述看来,你的nand flash 应该有两个partition,第一个是binfs,第二个是fatfs,当你expose DSK0的时候,pc并不认识第一个分区 binfs,所以会pc会提示你的盘没有格式化,当你…


牛,学习了。

#20


引用 16 楼 yangkunzhen 的回复:
to LinHanLao, 

1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑” 
中会出现“可移动磁盘”,但无法访问它(无法格式化) 

------>目前微软并没有实现  选择性的 expose一个partition到PC上,从你的描述看来,你的nand flash 应该有两个partition,第一个是binfs,第二个是fatfs,当你expose DSK0的时候,pc并不认识第一个分区 binfs,所以会pc会提示你的盘没有格式化,当你…


#21


不懂,up

#22


不懂,up

#23


to LinHanLao, 

 可能是PNP线程和ufn线程竞争的结果,也就是你的SD卡  会不停的dismount/mount,
把PNP线程的优先级调高些,try一下。(要是还不行,麻烦把你的log信息发出来)

[HKEY_LOCAL_MACHINE\System\StorageManager]
    "PNPThreadPrio256"=dword:63   

#24



请问以下:
如果想要把 WINCE5.0设备在PC上识别成U盘,
应该怎么处理呢?

WINCE5.0后WINCE6.0在添加这个功能的时候有什么区别?
有那些是需要自己修改的?



#25


学习。。。顶。。。

#26


还在学习,顶一下

#27


收藏了!mark一下!

#28


学习,收藏了

#29


学习,收藏了

#30


MARK

#31


学习了...

#32


顶顶顶

#33


汗。。。前两天要搞这东西,没搞定。。顶

#34


该回复于2009-10-22 14:47:28被版主删除

#35


引用 10 楼 shuiyan 的回复:
不要只看注册表,而是要看USB的驱动。

一般原厂bsp都不会实现USB MassStorage驱动的,必须自己实现或修改。这个不改好,你的注册表搞的再好都没用的。


老帖顶

USB MassStorage的驱动不是usbmsfn.dll吗

#36


引用 10 楼 shuiyan 的回复:
不要只看注册表,而是要看USB的驱动。

一般原厂bsp都不会实现USB MassStorage驱动的,必须自己实现或修改。这个不改好,你的注册表搞的再好都没用的。

是这样的,如果要开发usb massstorage还蛮麻烦的,不过关注中!帮楼主顶下!
不过yangkunzhen的方法似乎是可行的,有空试下!

#37


学习了....................

#38


引用 16 楼 yangkunzhen 的回复:
to LinHanLao,

1  把板载的空闲NAND FLASH当成U盘:DeviceName改为“DSK0:”,连接到PC时,在PC机的“我的电脑”
中会出现“可移动磁盘”,但无法访问它(无法格式化)

------>目前微软并没有实现  选择性的 expose一个partition到PC上,从你的描述看来,你的nand flash 应该有两个partition,第一个是binfs,第二个是fatfs,当你expose DSK0的时候,pc并不认识第一个分区 binfs,所以会pc会提示你的盘没有格式化,当你格式化的时候,okay,这个时候应该可以访问了,但是,你的binfs也就格式发成了FATFS,所以你下次再启动的时候,这个时候,wince是booting补起来的。

解决方案:重新修改  usb mass storag driver。(这个不是很难)


2  把插入设备的SD卡当成U盘:DeviceName改为“DSK1:”,当把设备连接到PC(这时候没有插入SD卡),
在PC的“设备管理器”中可以看到“USB Mass Storage Device”,当在设备上插入SD卡时,
“设备管理器”中的“USB Mass Storage Device”会出现一个黄色的感叹号,“我的电脑”
中也不会出现“可移动磁盘”。

----->这个是微软的没实现这个功能,就是类似与 reader card的功能。微软当前的driver默认的情况下是假设你的SD card已经插上去了,所以说当你没有插入SD卡就启动 usb mass storage功能的话,现在在 Init的时候会出错。也就是会在设备管理器上出现 惊叹号。

解决方案  重新修改  usb mass storag driver。(这个可能有点困难)
         


牛人,学习了

#39


我最近也在研究这个方面的内容。你的库估计有问题。我将我的库给你一份吧。

#40


过来学习下

#41


引用 6 楼 xajhuang 的回复:
第一种情况我遇到过 但是我把 USB 驱动修改后就好了。 第二种没有碰到过。

  6楼道兄弟,第一种情况是要改USB驱动哪里,可否指点下?

#42


该回复于2011-03-29 16:20:00被版主删除

#43


正是我要弄的 但是好像没看懂,先收藏了

#44


该回复于2011-04-27 17:23:03被版主删除

#45


我在Mini2440上实现了这个功能,但我需要遇到另一个问题:
  我的程序中会读取SD卡上的文件,但连接上电脑后,“Storage Card”就不存在,我需要检测到已连接上电脑而停止读取文件,当从电脑上卸载后能自动重新挂接上SD卡。请问各位大大有什么办法没有?

注册表如下:
REGEDIT4

[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"=dword:534D
"Manufacturer"="Nikersoft Group"
"idProduct"=dword:2011
"Product"="SM20200 USB Disk"
"bcdDevice"=dword:0

#46


mark

#47


试试修改下面的配置,在BSP的根目录里的BAT文件
@REM If you want to exclude USB Function driver in BSP. Set this variable
set BSP_NOUSBFN=
@REM This select default function driver
@REM set BSP_USBFNCLASS=SERIAL
set BSP_USBFNCLASS=MASS_STORAGE

#48


LZ解决了么?

#49


mark

#50


学习,标记。