Windows CE设备的唯一计算机ID

时间:2009-07-13 13:53:37

标签: c++ winapi windows-mobile windows-ce

我需要为CE 6.0设备生成唯一的计算机ID。在Windows操作系统上,我使用WMI获取一些硬件标识符,我从中构建了此ID。显然,Win CE不支持WMI,所以我正在寻找替代方案。

目前我正在使用我在Platform Builder中构建的操作系统映像并在模拟器中测试我的应用程序,之后我才会收到真正的WinCE设备。

我已经尝试了GetDeviceUniqueIDKernelIoControl(IOCTL_HAL_GET_DEVICEID,...,但它们都返回ERROR_NOT_SUPPORTED(0x80070032)。

  1. 我是否需要在wince目录中包含一些软件包才能启用此功能?
  2. 这种限制仅适用于模拟器吗? (我的意思是,可能是OEM正在为真实设备实现这种独特的功能吗?

  3. 您对我如何构建此值有任何其他想法吗?喜欢获取硬件/ OS系列等等以及如何获得?

2 个答案:

答案 0 :(得分:2)

如果您正在构建操作系统,那么您需要实现IOCTL,以便KernelIoControl返回一些内容。它的衍生完全取决于你。我已经看到MAC作为基础,以及板载闪存的序列号。

如何为您的特定平台执行此操作我不能说,但作为x86的示例,您可以{%{3}}在%WINCEROOT& \ PLATFORM \ COMMON \ SRC \ X86 \ COMMON \ IOCTL \ devinfo .c并修改克隆(显然,修改公共代码)。

答案 1 :(得分:0)

不确定它是否是旧帽子,但this thread似乎相关。它似乎提到使用模拟器的人都获得“真实的”ID:s,人们变得不变0。