Вопрос по windows-ce, windows-mobile, winapi, c++ – Уникальный идентификатор машины для устройства Windows CE

0

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

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

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

Do I need to include some package from the wince catalog in order to enable this feature?

Is this limitation only on emulators? (i mean, could it be that OEM's are implementing this unique-id-feature for real devices?

Do you have any other idea how I could construct this value? Like getting hardware / OS serials etc. and how?

Ваш Ответ

2   ответа
2

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

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

0

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

Я пришел по этой ссылке также во время поиска решения. Непонятно, но я подозреваю, что у тех, кто получил 0 как ID, была та же проблема, что и у меня На самом деле, с первой попытки я тоже получил 0, но только позже проверил HRESULT и заметил ошибку. Поэтому я предполагаю, что они также получают некоторый код ошибки (и игнорируют HRESULT). Sasha Nikolic

Похожие вопросы