none
WinCE6.0 R2下的SD Card的获取SD Card ID的问题。 RRS feed

  • 问题

  •  

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

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

    2008年9月16日 15:59

答案

  • 我使用的是WinCE 6.0。CreateFile获得的句柄是有效的句柄,不过只是句柄的属性不对,它获得的属性是Pure文件句柄,而不是设备句柄,导致最后的DeviceIoControl的命令没有被正确转发给设备驱动进行处理。所以无法获得ID。

    2008年10月22日 2:12

全部回复

  • 同样的使用的是:

    DeviceIoControl( hDrive, IOCTL_DISK_GET_STORAGEID, NULL, 0, Ident, Length,&dwBytesReturned, NULL);

     

    有关熟悉的人是否可以详细的介绍一下其中的DeviceIoControl的过程。

    2008年9月16日 16:09

  • 问题解决了,修改了一下MS的源代码。期待着和MS的人员Double Check一下。
    2008年9月21日 13:48
  • 在windows mobile 5.0下可以使用DeviceIocontrol吗?为什么我每次调用都是NotSupportedException?

     

    2008年10月7日 15:54
  • 您好,楼主,请问你是怎么修改MS的source code来获得正确的DeviceIoControl()的调用的,之前显示的参数错误是否表示你通过CreateFile()获得的设备handle是无效的?

    谢谢。
    2008年10月14日 5:10
  • 我使用的是WinCE 6.0。CreateFile获得的句柄是有效的句柄,不过只是句柄的属性不对,它获得的属性是Pure文件句柄,而不是设备句柄,导致最后的DeviceIoControl的命令没有被正确转发给设备驱动进行处理。所以无法获得ID。

    2008年10月22日 2:12