阅读:4841回复:7
怎么得到U盘的Serial number?
怎么得到U盘的Serial number?
|
|
沙发#
发布于:2004-09-28 10:56
怎么用VC得到U盘的Serial number?
|
|
板凳#
发布于:2004-10-10 10:08
怎么没有人回答?
|
|
地板#
发布于:2004-10-10 10:33
用这个GUID:53f56307-b6bf-11d0-94f2-00a0c91efb8b
然后详细代码好多别的帖子有写的。主要用这几个函数 首先 SetupDiGetClassDevs 然后 SetupDiEnumDeviceInterfaces 再 SetupDiGetDeviceInterfaceDetail可以得到一个设备路径,用这个设备路径可以CreateFile打开设备得到句柄,然后用这个句柄用DeviceIoControl函数就可以得到你要的这个Serial number了 [编辑 - 10/10/04 by cecily] |
|
|
地下室#
发布于:2004-10-10 11:10
可以获取String描述符,在Device描述符中有一项iSerialNumber,就是指明String描述符中表示SerialNumber的索引号
但是String描述符是可选项,设备有可能不提供 具体可以参考标准的第九章9.6小节 |
|
5楼#
发布于:2004-10-11 14:55
"用这个GUID:53f56307-b6bf-11d0-94f2-00a0c91efb8b
然后详细代码好多别的帖子有写的。主要用这几个函数 首先 SetupDiGetClassDevs 然后 SetupDiEnumDeviceInterfaces 再 SetupDiGetDeviceInterfaceDetail可以得到一个设备路径,用这个设备路径可以CreateFile打开设备得到句柄,然后用这个句柄用DeviceIoControl函数就可以得到你要的这个Serial number了" 我也用到这些了,结构:IOCTL_STORAGE_QUERY_PROPERTY,可是不知道为什么就是得不到U盘的Serial number,非常郁闷,请大家帮忙。 |
|
6楼#
发布于:2004-10-12 03:55
获取u盘的sn是一件不太愉快的事。
1.大多数u盘(硬盘,flash闪盘)作为usb设备,并没有提供usb协议中建议设置的sn,此路不通; 2.芯片的Sn?怎么读?读了一家还有别人家呢... 3.xp下可以用IOCTL_DISK_GET_DRIVE_GEOMETRY_EX来得到移动硬盘的disk GUID,但是flash闪盘,因为容量小,大多没有MBR,基本也不能靠这个读sn; 4.权宜之计可以读u盘的分区序列号,但是格式化后会变,某些场合也可以用这个了。 5.自己写了。 |
|
7楼#
发布于:2004-10-12 12:23
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_Netac&Prod_OnlyDisk&Rev_1.11\221D19FD3D8E6261&0]
221D19FD3D8E6261不是硬件ID吗? |
|