2009-07-13 35 views
0

我需要爲CE 6.0設備生成唯一的機器標識。在Windows操作系統上,我使用WMI來獲取一些硬件標識符,從中我構建了這個ID。顯然,Win CE不支持WMI,所以我正在尋找替代品。Windows CE設備的唯一機器標識

目前我正在玩的是我在Platform Builder中構建的操作系統映像,並在仿真器中測試了我的應用程序,之後我纔會提供真正的WinCE設備。

我試過GetDeviceUniqueIDKernelIoControl(IOCTL_HAL_GET_DEVICEID,...,但它們都返回ERROR_NOT_SUPPORTED(0x80070032)。

  1. 我是否需要在wince目錄中包含一些包才能啓用此功能?
  2. 此限制僅適用於仿真器嗎? (我的意思是,這可能是OEM正在實現真正的設備這個獨特的ID功能?

  3. 你有任何其他的想法,我可以如何構建這個值嗎?就像獲取硬件/操作系列等,以及如何? 。

回答

2

如果」重新構建操作系統,那麼你需要實現IOCTL,以便KernelIoControl返回一些東西。它的派生完全取決於你。我已經看到了MAC作爲基礎,以及板載閃存的序列號。

你會怎麼做你的特定平臺,我不能說,但作爲X86及例如,您可能clone the code在%WINCEROOT & \ PLATFORM \ COMMON \ SRC \ X86 \ COMMON \ IOCTL \ devinfo.c和修改克隆號(不要修改通用代碼,很明顯)。

0

不知道,如果是舊帽子,但this thread似乎有關,似乎使用鄉親模擬器都得到「真正的前瞻性」 ID提:S,和鄉親不斷得到0

+0

我在搜索解決方案時也找到了該鏈接。它不清楚,但我懷疑那些得到0作爲ID的人與我有同樣的問題。其實,在我第一次嘗試時,我也得到了0,但後來檢查了HRESULT並注意到了錯誤。所以我認爲他們也得到了一些錯誤代碼(並忽略HRESULT)。 – 2009-07-13 14:37:50