Уникальный идентификатор машины для устройства Windows CE - PullRequest
0 голосов
/ 13 июля 2009

Мне нужно сгенерировать уникальный идентификатор машины для устройства CE 6.0. В ОС Windows я использовал WMI для получения некоторых аппаратных идентификаторов, из которых я создал этот идентификатор. Очевидно, WMI не поддерживается в Win CE, поэтому я ищу альтернативы.

В данный момент я играю с образом ОС, созданным в Platform Builder, и тестирую свое приложение в эмуляторе, только позже мне будет доставлено настоящее устройство WinCE.

Я пробовал оба GetDeviceUniqueID и KernelIoControl(IOCTL_HAL_GET_DEVICEID,..., но оба возвращают ERROR_NOT_SUPPORTED (0x80070032).

  1. Нужно ли включать какой-либо пакет из каталога wince, чтобы включить эту функцию?
  2. Это ограничение только для эмуляторов? (Я имею в виду, может быть, OEM-производители реализуют эту функцию уникального идентификатора для реальных устройств?

  3. У вас есть еще идеи, как я могу построить это значение? Как получить серийные номера оборудования / ОС и т. Д. И как?

Ответы [ 2 ]

2 голосов
/ 14 июля 2009

Если вы собираете ОС, вам нужно реализовать IOCTL, чтобы KernelIoControl что-то возвращал. Как его вывод полностью зависит от вас. Я видел MAC в качестве базы, а также серийный номер встроенной вспышки.

Как вы это сделаете для вашей конкретной платформы, я не могу сказать, но в качестве примера для x86 вы можете клонировать код в% WINCEROOT & \ PLATFORM \ COMMON \ SRC \ X86 \ COMMON \ IOCTL \ devinfo.c и измените клон (очевидно, не изменяет общий код).

0 голосов
/ 13 июля 2009

Не уверен, что это старая шляпа, но эта тема кажется актуальной. Похоже, что люди, использующие эмуляторы, получают как «реально выглядящие» идентификаторы: s, так и люди, получающие постоянную 0.

...