英创信息技术读取EM9170工控主板的唯一设备ID号

em9170是一款基于freescale imx257芯片,预装windows ce6.0的通用工控主板。em9170在为客户应用提供了更为丰富的资源,以满足客户更多的专业需求的同时,还在客户应用程序保护方面,准备了多种手段。保护客户应用程序的基本方法是对主板进行加密码设置,并在应用程序中采用专用手段进行验证,客户可在英创网站进一步了解进行密码设置的流程。客户密码设置是面向客户的,即每一个客户所购买的所有em9170主板产品,其密码是相同的,本文则主要介绍如何读取每个em9170主板上唯一的设备id号的方法。唯一设备id号不仅能用于客户应用程序的保护,同时还能方便客户对设备的维护管理。
读取设备id号,需要使用微软的guid数据结构:
typedef struct _guid {
unsigned long data1;
unsigned short data2;
unsigned short data3;
unsigned char data4[8];
} guid, uuid;
读取em9170主板上的唯一id号的范例代码如下:
#include 'stdafx.h'
#include
#include
#include
#define ioctl_hal_get_device_info \ ctl_code(file_device_hal, 1, method_buffered, file_any_access)
extern 'c' __declspec(dllimport) bool kerneliocontrol(dword dwiocontrolcode,
lpvoid pinbuffer,
dword insize,
lpvoid poutbuffer,
dword outsize,
lpdword preturnbytes);
int _tmain(int argc, _tchar* argv[])
{
guid uuid;
dword dwsize = sizeof(uuid);
uint32 spivalue = spi_getuuid;
uint32 i;
printf('get device info v1.0\r\n');
if(false==kerneliocontrol(ioctl_hal_get_device_info, &spivalue, sizeof(spivalue), &uuid,dwsize, &dwsize))
{
printf('kerneliocontrol->ioctl_hal_get_device_info failed\r\n');
return -1;
}
// printd device id
for(i = 0; i < sizeof(uuid.data4); i++)
{
printf('uuid.data4[%d] = 0x%02x\r\n', i, uuid.data4[i]);
}
return 0;
}
guid结构中的uuid.data4为64-bit的设备唯一id号。data1–data3为系统保留数据,应用程序可不关心。

渗透实战:记一次弱口令的挖掘
华尔街:三星note7爆炸后如何才能重新获得信任
零排放汽车市场竞争激烈,本田联手松下研发摩托车用便携式电池
一个简单的立体声驻极体麦克风前置放大器电路
是什么使加密货币的价值成为了真正的货币
英创信息技术读取EM9170工控主板的唯一设备ID号
手机保护壳PUR热熔胶点胶加工特点和优势
扰码器(三)并行扰码器综述及设计思路
一种层次权重决策分析方法
运动耳机啥样的好、性价比高的运动蓝牙耳机
日本车企转型,要发力进军电动车领域?
福建省首批5G公交车正式上路运营
我国是全球5G发展和增长的重要力量?
IPG高功率光纤激光器厚板切割技术
Arxum集成物联网与区块链以翻转制造业
什么是MPLS MPLS中有哪些基本概念名词
芯片制造的“秘密武器”
弘信电子的崛起,上半年净利预增达15%
高频PCB板布线的技巧,什么是SPICE模型?
电荷耦合图像传感器 -CCD摄像法测径实验