coobeeee

    1. 请问CF卡读取问题 17/6731 嵌入式系统 2009-12-15
      引用 11 楼 guopeixin 的回复: 引用 10 楼 motta021 的回复: 借用楼主这块宝地,想请问下,你获取到了序列号,有没有获取过MANUFACTURERID?结构体typedef struct _STORAGE_IDENTIFICATION { ? DWORD dwSize; ? DWORD dwFlags; ? DWORD dwManufactureIDOffset; ? DWORD dwSerialNumOffset; } STORAGE_IDENTIFICATION, *PSTORAGE_IDENTIFICATION; 这里面有个dwFlags, dwFlags Provides information about the manufacturer identifier and serial number. Flag Description MANUFACTURERID_INVALID The identifier for the manufacturer is not valid. SERIALNUM_INVALID The serial number is not valid. 这里是不是表示有的卡只有一种ID,有的卡两个都有呢?如果两个都有的话,那他的偏移量会不会有重合的现象, 我得到的是这样的 MANUFACTURERID:02AE1A378E, SERIALNUM: AE1A378E,换了几个卡感觉序列号始终是比出厂标示少俩字符,一看就知道偏移量造成两个标示有重合。 是不是我做错了,要怎么搞? 以下是获取函数 void CSystemInfoDlg::dumpStorageId(CString szDisk,CString &strmanu, CString &strcardid) { HANDLE hDsk=NULL; hDsk = ::CreateFile(szDisk, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); byte buf[sizeof(STORAGE_IDENTIFICATION)+256]; STORAGE_IDENTIFICATION *si= (STORAGE_IDENTIFICATION *)buf; si->dwSize=sizeof(STORAGE_IDENTIFICATION)+256; DWORD nReturned; if (!DeviceIoControl(hDsk, IOCTL_DISK_GET_STORAGEID, NULL, 0,buf, sizeof(STORAGE_IDENTIFICATION)+256, &nReturned, NULL)) { return ; } TCHAR bufxx[100],bufyy[100]; wsprintf(bufxx,L"%hs", &buf[si->dwManufactureIDOffset]); wsprintf(bufyy,L"%hs", &buf[si->dwSerialNumOffset]); ? ? strmanu =bufxx; strcardid =bufyy; } 1. 有没有获取过MANUFACTURERID 你的lz获取的不都是一样的么?都是通过调用IOCTL_DISK_GET_STORAGEID从cid转换出来的一组数据 2. 里是不是表示有的卡只有一种ID,有的卡两个都有呢 按照1.0和2.0协议的规定,每种卡两个id号都有,具体是否给应用程序和存储管理器使用,取决于driver的client层的设计,一般情况下两者都给; 2. 换了几个卡感觉序列号始终是比出厂标示少俩字符,一看就知道偏移量造成两个标示有重合 不知道你的标志是如何获取的?
      2. 由于IOCTL_DISK_GET_STORAGEID并非只针对sd卡,所以有的块设备可以只提供MANUFACTURERID或者rial id
    2. 集成电路应用识图方法 12/4475 模拟电子 2009-10-27
      具体实用吗?
    3. 集成电路应用识图方法 12/4475 模拟电子 2009-10-27
      好东西
    4. 谢谢楼主收藏了。
    5. 模电仿真软件proteus7.2 sp6破解版 468/109543 模拟电子 2009-10-23
      芯币不够用了,什么时候能下完啊

最近访客

< 1/1 >

统计信息

已有80人来访过

  • 芯积分:--
  • 好友:--
  • 主题:--
  • 回复:5

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言