阅读:1187回复:8
WinCE下SD卡初始化结束后无法在wince目录显示出来本人的SD卡驱动现已经能加载Sdmemory.dll. 但是在加载完之后还会发CMD17这个命令, 是不是在加载完sdmemory.dll之后。 在wince的目录下面是不是就会显示出一个SD卡的目录来(和U盘一样的那种)? 不过我初始化结束之后。显示不了。会是什么问题哪? 各位大虾帮忙看看,谢谢了。 下面是加载后的调试信息: 0x8ce73100: SDSetCardInterfaceForSlot - HC ClockRate differs desired setting: desired: 25000000 Hz, Actual : 24000000 Hz 0x8ce73100: DEVICE!RegReadActivationValues RegQueryValueEx (\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class\BusPrefix) returned 2 0x8ce73100: SDMemory: +SMC_Init 0x8ce73100: SDGetDeviceHandle: ActivePath: Drivers\Active\4294967290 0x8ce73100: SDGetClientFunctions: +Init 0x8ce73100: SDGetClientFunctions: -Init 0x8ce73100: SDMemCalcDataAccessClocks: Tpd:f ns, Asynch: f ns, AsyncClocks:0 , SyncClocks: 1078231040, ReadTotal: 0, Write Factor: 1074528256 WriteTotal: 0 0x8ce73100: BusRequestHandler starts (CMD:16) 0x8ce73100: SendCommand (this:0x000406c0,Cmd:0x0010,Arg:0x00000200, ResponseType:0x0001,bDataTransfer:0x0) starts 0x8ce66d10: GetCommandResponse started 0x8ce73100: SDMemory: Initialize: Using block transfer size of 64 blocks 0x8ce73100: SDMemory: Idle Timeout: 2000 Idle Power State: 2 0x8ce73100: SDMemory: Power Management Setup complete 0x8ce73100: SDMemory: -SMC_Init 0x8cf95000: [NOTIFY] HandleSystemEvent 7 /ADD DSK1: 0x8cfcb640: SDMemory: GetDeviceInfo - Profile = SDMemory, length = 18 0x8cfcb640: SDMemory: GetStorageID Insufficient buffer space SDMemory: -GetStorageID 0x8cfcb640: Loading partition driver mspart.dll hModule=8CDDDF10 0x8cfcb640: Driver mspart.dll loaded 0x8cfcb640: BusRequestHandler starts (CMD:17) 0x8cfcb640: SendCommand (this:0x000406c0,Cmd:0x0011,Arg:0x00000000, ResponseType:0x0001,bDataTransfer:0x1) starts 0x8ce66d10: GetCommandResponse started 0x8cfcb640: Opened the store hStore=000B1A20 0x8cfcb640: BusRequestHandler starts (CMD:17) 0x8cfcb640: SendCommand (this:0x000406c0,Cmd:0x0011,Arg:0x00000000, ResponseType:0x0001,bDataTransfer:0x1) starts 0x8ce66d10: GetCommandResponse started 0x8cfcb640: NumSec=182464 BytesPerSec=512 FreeSec=0 BiggestCreatable=0 |
|
|
沙发#
发布于:2007-05-21 17:49
关注。。。
|
|
|
板凳#
发布于:2007-05-22 20:50
把FAT文件系统加上,才可能出现目录.把存储管理器也加上,方便执行格式化等操作.
|
|
|
地板#
发布于:2007-05-23 08:51
谢谢斑竹了。
文件已经系统加上了,但是在目录下还是无法出现。 加载SDmemory是会出现: 0x8cfcb640: SDMemory: GetStorageID Insufficient buffer space SDMemory: -GetStorageID 错误发生在下面(位于sdmemmain.cpp)这句话。 其中cBytes大小为:cBytes ---- Size of psid buffer(微软给的注释)。 那么cBytes 和sizeof(*psid)永远就是相等的(Debug 的时候两者也相等), 其不是cBytes < (sizeof(*psid)+SD_SIZEOF_STORAGE_ID) 一直会成立, 不知道是我的理解的有问题吧?还是?斑竹是否遇到过类似的问题。 if( cBytes < (sizeof(*psid)+SD_SIZEOF_STORAGE_ID) ) { DEBUGMSG( SDCARD_ZONE_ERROR, (TEXT("SDMemory: GetStorageID Insufficient buffer space\r\nSDMemory: -GetStorageID\r\n"))); return ERROR_INVALID_PARAMETER; } |
|
|
地下室#
发布于:2007-05-23 12:02
这是驱动bug,改成如下
if( cBytes < (sizeof(*psid)+SD_SIZEOF_STORAGE_ID) ) { psid->dwSize = sizeof(*psid)+SD_SIZEOF_STORAGE_ID; DEBUGMSG( SDCARD_ZONE_ERROR, (TEXT("SDMemory: GetStorageID Insufficient buffer space\r\nSDMemory: -GetStorageID\r\n"))); return ERROR_INSUFFICIENT_BUFFER; |
|
5楼#
发布于:2007-05-23 12:43
谢谢。
好的,我修改一下试试。楼上也遇到这个问题了?? |
|
|
6楼#
发布于:2007-05-23 15:45
wenzai ,你好,
改过之后, 这个函数可以过, 但是还是无法显示在mydevice下面... 知道什么原因不? 谢谢了。。。 |
|
|
7楼#
发布于:2007-05-23 20:37
你的注册表信息是什么?
|
|
8楼#
发布于:2007-05-24 12:32
我的注册表加载了sdbus.dll,sdmemory.dll,
还有就是sdhost.dll. 难道还有别的什么吗? 就这些就对了吧? 谢谢。 |
|
|