WinCE6.0 R2下获取SD Card ID的问题

老夏Max 2008-09-18 12:22:35
OS Image中已经添加了sdbus和自己的SDHC的驱动、SDMemory,注册表中也添加了相关的设置,现在的情况是:使用类似“DSK1:”这样的名字CreateFile获得的句柄可以通过DeviceIoControl 获得到相应的SD Card的ID,而使用“\\Storage Card\\VOL:”来CreateFile获得的句柄,则无法通过DeviceIoControl来获得句柄,返回的错误为0x57,即参数错误。因为CE 6.0中仍然没有FileSys的源代码,所以无法跟踪,个人猜测是不是还缺少些什么?Block Driver?注册表中的相关设置?

我想应该有一个内部的机制,让这两种方法的调用可以相互的映射,不知道这种猜测对不对?

CreateFile都成功,都是使用IOCTL_DISK_GET_STORAGEID来获得SD Card ID。
...全文
367 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujinqiang 2008-10-05
  • 打赏
  • 举报
回复
引用 4 楼 gsymichael 的回复:
学习了。
dolphin9z 2008-10-04
  • 打赏
  • 举报
回复
我的sd卡在wince6.0下驱动成功,而且在控制面板的storage manager里也能看到我的sd卡,就是在文件系统上看不见我的sd卡文件夹,请问是怎么回事?
老夏Max 2008-09-21
  • 打赏
  • 举报
回复
呵呵,等和MS交流以后,确认了,我会写出具体的东西。
qinqin_pg 2008-09-21
  • 打赏
  • 举报
回复
mark一下
KevinCEC 2008-09-21
  • 打赏
  • 举报
回复
学习了 弱弱问一下这个ID和PC(windows)下读取的ID是否一致?
老夏Max 2008-09-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 KevinCEC 的回复:]
学习了 弱弱问一下这个ID和PC(windows)下读取的ID是否一致?
[/Quote]

理论上是一直的,因为这是写在SD Card硬件中的。
gsymichael 2008-09-20
  • 打赏
  • 举报
回复
学习了。
老夏Max 2008-09-20
  • 打赏
  • 举报
回复
问题搞定了,感觉是WinCE 6.0的一个bug。修改了fsdmgr中的一些代码以后,就可以正确的读出了。主要是volumeapi.cpp文件中的创建句柄的时候对句柄的属性设置有错误。
老夏Max 2008-09-19
  • 打赏
  • 举报
回复
CE 6.0下的code我也追踪了,不过到最后的部分,MS还是没有给出code,不知道错在何处。CE6.0中FSDMGR.h文件就是最后的能看到的地方了。
现在一切看起来都很正常但是就是不对,考。
gsymichael 2008-09-19
  • 打赏
  • 举报
回复
在ce5.0下两种方法都是可以的啊。
从函数调用的stack看用DSK直接调到Device.exe管理的接口函数然后调到SDMemory的IOControl。
而用VOL的是通过FSD-〉Partition的IoControl调到SDMemory的IoControl。

19,498

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧