我需要为CE 6.0设备生成唯一的计算机ID。在Windows操作系统上,我使用WMI获取一些硬件标识符,我从中构建了此ID。显然,Win CE不支持WMI,所以我正在寻找替代方案。
目前我正在使用我在Platform Builder中构建的操作系统映像并在模拟器中测试我的应用程序,之后我才会收到真正的WinCE设备。
我已经尝试了GetDeviceUniqueID
和KernelIoControl(IOCTL_HAL_GET_DEVICEID,...
,但它们都返回ERROR_NOT_SUPPORTED
(0x80070032)。
这种限制仅适用于模拟器吗? (我的意思是,可能是OEM正在为真实设备实现这种独特的功能吗?
您对我如何构建此值有任何其他想法吗?喜欢获取硬件/ OS系列等等以及如何获得?
答案 0 :(得分:2)
如果您正在构建操作系统,那么您需要实现IOCTL,以便KernelIoControl返回一些内容。它的衍生完全取决于你。我已经看到MAC作为基础,以及板载闪存的序列号。
如何为您的特定平台执行此操作我不能说,但作为x86的示例,您可以{%{3}}在%WINCEROOT& \ PLATFORM \ COMMON \ SRC \ X86 \ COMMON \ IOCTL \ devinfo .c并修改克隆(显然,不修改公共代码)。
答案 1 :(得分:0)
不确定它是否是旧帽子,但this thread似乎相关。它似乎提到使用模拟器的人都获得“真实的”ID:s,人们变得不变0。