紧凑框架 - 获取存储卡序列号

时间:2009-02-16 09:05:24

标签: encryption compact-framework .net-2.0 c#-2.0

早上好,

如何在移动设备上获取存储/ SD卡的序列号?我在Compact Framework V2.0上使用C#.Net 2.0。

感谢。

3 个答案:

答案 0 :(得分:3)

Smart Device Framework provides a mechanism获取SD卡序列号和制造商ID。

答案 1 :(得分:1)

我不在机器上,我可以为您获取语法,但我相信您可以使用System.IO命名空间来获取基于IO的属性。

首先获取存储卡的DirectoryInfo。 (我不是100%在这里的代码,你可能需要测试,我会更新它,如果我可以到我的机器)

public DirectoryInfo GetStorageCard() {
    DirectoryInfo deviceRoot = new DirectoryInfo("/");
    foreach (DirectoryInfo dir in deviceRoot.GetDirectories()) 
       if (dir.Attributes == FileAttributes.Directory & dir.Attributes = FileAttributes.Temporary)
return dir;
}

然后检查代码返回的DirectoryInfo上的所有属性。由于调试的乐趣,您应该能够看到序列号是否是可用属性之一。

如果没有,你可能需要寻找一些不受管理的东西。

希望这有帮助。

答案 2 :(得分:1)

您需要使用一些非托管API。具体而言,DeviceIoControl使用IOCT_DISK_GET_STORAGEID的“控制代码”。反过来,这将返回STORAGE_IDENTIFICATION结构。

这里有点棘手,因为STORAGE_IDENTIFICATION使用属性(dwSerialNumOffset)来指定从结构开头的(内存)偏移量,这很难转化为互操作调用。

修改:在MSDN论坛上找到VB.NET implementation