各位老大门。将U盘插入min6410开发板,装的是WINCE6.0的系统,如何才能获取到它的物理序列号呢?用C语言写个应用程序,或者说说思路也好。。麻烦各位老大们了,本人学校LINUX的,但是公司要我去研究那个东西,不知道要怎么做,求指点啊。。
------解决方案--------------------
这个需要驱动来实现的
且 U 盘有物理 SN 吗?
------解决方案--------------------
应该是主控芯片的sn吧,
------解决方案--------------------
------解决方案--------------------
也并非所有 CPU 都有 SN 的,好像 freescale iMX 系列的有
------解决方案--------------------
PUBLIC _get_serial
_get_serial PROC FAR
PUSH BP
MOV BP,SP
PUSH DI
PUSH SI
PUSH BX
PUSH CX
PUSH DX
PUSH DS
PUSH ES
MOV DX,@DATA
MOV DS,DX
MOV DX,OFFSET I_LEVEL
MOV BX,0
MOV AX,6900H
INT 21H
MOV BX,OFFSET I_LEVEL
MOV AX,DS:[BX+2]
ADD AX,DS:[BX+4]
NOT AX
POP ES
POP DS
POP DX
POP CX
POP BX
POP SI
POP DI
POP BP
ret
_get_serial ENDP
------解决方案--------------------
各类U盘的控制芯片结构是不一样的,不一定都能获取到序列号,就算能获取到,方法也各异。
我觉得比较可行的方案是利用其报告给USB控制器的各类信息。
例如在windows设备管理器下,能够看到U盘的很多信息,比如“硬件ID”、“设备类GUID”等,这些都是可以通过USB标准命令来获取的
------解决方案--------------------
各类U盘的控制芯片结构是不一样的,不一定都能获取到序列号,就算能获取到,方法也各异。
我觉得比较可行的方案是利用其报告给USB控制器的各类信息。
例如在windows设备管理器下,能够看到U盘的很多信息,比如“硬件ID”、“设备类GUID”等,这些都是可以通过USB标准命令来获取的
------解决方案--------------------
楼上说的是呀,只能获取VIP,PID信息吧,要获取芯片内部的SN,视乎不太可能,除非物理芯片的厂家开放读接口指令呀。这个要详细看芯片的datasheet呀。