WINCE6.0系统下插入U盘,怎么获取他的物理序列号?

时间:2022-07-04 07:31:40
各位老大门。将U盘插入min6410开发板,装的是WINCE6.0的系统,如何才能获取到它的物理序列号呢?用C语言写个应用程序,或者说说思路也好。。麻烦各位老大们了,本人学校LINUX的,但是公司要我去研究那个东西,不知道要怎么做,求指点啊。。

8 个解决方案

#1


这个需要驱动来实现的

且 U 盘有物理 SN 吗?

#2


应该是主控芯片的sn吧,

#3


引用 2 楼  的回复:
应该是主控芯片的sn吧,


也并非所有 CPU 都有 SN 的,好像 freescale iMX 系列的的

#4


也并非所有 CPU 都有 SN 的,好像 freescale iMX 系列的有

#5


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

#6


各类U盘的控制芯片结构是不一样的,不一定都能获取到序列号,就算能获取到,方法也各异。
我觉得比较可行的方案是利用其报告给USB控制器的各类信息。
例如在windows设备管理器下,能够看到U盘的很多信息,比如“硬件ID”、“设备类GUID”等,这些都是可以通过USB标准命令来获取的

#7


各类U盘的控制芯片结构是不一样的,不一定都能获取到序列号,就算能获取到,方法也各异。
我觉得比较可行的方案是利用其报告给USB控制器的各类信息。
例如在windows设备管理器下,能够看到U盘的很多信息,比如“硬件ID”、“设备类GUID”等,这些都是可以通过USB标准命令来获取的

#8


楼上说的是呀,只能获取VIP,PID信息吧,要获取芯片内部的SN,视乎不太可能,除非物理芯片的厂家开放读接口指令呀。这个要详细看芯片的datasheet呀。

#1


这个需要驱动来实现的

且 U 盘有物理 SN 吗?

#2


应该是主控芯片的sn吧,

#3


引用 2 楼  的回复:
应该是主控芯片的sn吧,


也并非所有 CPU 都有 SN 的,好像 freescale iMX 系列的的

#4


也并非所有 CPU 都有 SN 的,好像 freescale iMX 系列的有

#5


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

#6


各类U盘的控制芯片结构是不一样的,不一定都能获取到序列号,就算能获取到,方法也各异。
我觉得比较可行的方案是利用其报告给USB控制器的各类信息。
例如在windows设备管理器下,能够看到U盘的很多信息,比如“硬件ID”、“设备类GUID”等,这些都是可以通过USB标准命令来获取的

#7


各类U盘的控制芯片结构是不一样的,不一定都能获取到序列号,就算能获取到,方法也各异。
我觉得比较可行的方案是利用其报告给USB控制器的各类信息。
例如在windows设备管理器下,能够看到U盘的很多信息,比如“硬件ID”、“设备类GUID”等,这些都是可以通过USB标准命令来获取的

#8


楼上说的是呀,只能获取VIP,PID信息吧,要获取芯片内部的SN,视乎不太可能,除非物理芯片的厂家开放读接口指令呀。这个要详细看芯片的datasheet呀。