Серийный номер для КПК Windows Mobile 6.0

Средства разработки, технические вопросы, отвечает (по мере сил) Отдел Разработок
Закрыто
VictorC
Новенький (0 lvl)
Сообщения: 5
Зарегистрирован: Вт авг 29, 2006 14:11

Серийный номер для КПК Windows Mobile 6.0

Сообщение VictorC » Вт апр 22, 2008 12:03

Разработка ведется в С#. В Windows Mobile 5.0 для получения серийного номера использовал код.

Код: Выделить всё

KernelIoControl(IOCTL_HAL_GET_DEVICEID, IntPtr.Zero,
                    0, outbuff, nBuffSize, ref dwOutBytes)
Все работало хорошо.
В Windows Mobile 6.0 - данный код не возвращает в outbuff серийный номер КПК.
Поиск в интернет и по MSDN не дал результатов - данная тема фактически не рассматривается.

Просьба подсказать, каким образом я могу получить серийный номер КПК в Windows Mobile 6.0

sshd
Нобелевский лауреат (7 lvl)
Сообщения: 2159
Зарегистрирован: Вс мар 19, 2006 15:55

Сообщение sshd » Вт апр 22, 2008 17:15

ну вообще - в WM6 всё должно работать точно так же, как и в WM5.
а что за девайс?
Samsung GT-S8500 + MicroSD 8Gb

VictorC
Новенький (0 lvl)
Сообщения: 5
Зарегистрирован: Вт авг 29, 2006 14:11

Сообщение VictorC » Вт апр 22, 2008 18:24

Напр.
HP iPAQ 114 Classic Handheld
Windows Mobile 6 Classic

Но это проявляется на нескольких девайсах.

dm.litv
Новенький (0 lvl)
Сообщения: 2
Зарегистрирован: Пн май 05, 2008 23:35

Сообщение dm.litv » Пн май 05, 2008 23:58

Есть такая проблема!!!
Только что столкнулся!

2 года все работало хорошо через IOCTL_HAL_GET_DEVICEID
(WM3, WM5)

На праздники прислали кучу одинаковых серийников
с WM 6. HP 110 серия (110, 114)

Ответа пока не знаю. Но мне это крайне важно, ибо деньги.
Если чего найду, напишу.

Вроде бы, говорят, GetDeviceUniqueId()
Завтра буду проверять.

Если инфа у тебя какая-то появилась,
и есть желание поделиться -
пиши мылом
<ник_как_в_этом_форуме> @ gmail.com

тут, я думаю, никто не ответит. хотя странно, проблема у всех
должна быть.

Если будут результаты у меня, напишу.

kvv@home
Студент (1 lvl)
Сообщения: 44
Зарегистрирован: Чт янв 11, 2007 23:30

Сообщение kvv@home » Ср май 07, 2008 10:52

dm.litv писал(а): тут, я думаю, никто не ответит. хотя странно, проблема у всех
должна быть.
у нас пока такой проблемы не возникло. хотя проблема тоже актуальна.
тестировали на разных моделях HTC с WM6 - везде id определяется нормально.
kvv

dm.litv
Новенький (0 lvl)
Сообщения: 2
Зарегистрирован: Пн май 05, 2008 23:35

Сообщение dm.litv » Вт май 13, 2008 14:45

Провёл эксперименты.
Имел в наличии -
hp 114 - 3 экземпляра
asus 626 - 1 экземпляр.

Результат:
на asus работает и IOCTL_HAL_GET_DEVICEID, и GetDeviceUniqueID().
на hp - только GetDeviceUniqueID().

Документация Microsoft говорит, что GetDeviceUniqueID() должна
работать, начиная с СE5.0 . А IOCTL_HAL_GET_DEVICEID должна
_не_ работать ("deprecated"), начиная с СE6.0

Но производители устройств, естественно, могут делать по-своему
(и каждый по разному).

Для себя мы пока решили так:
Если GetDeviceUniqueID() присутствует в coredll.dll и не даёт ошибку
при вызове, то используем её.
Иначе - используем IOCTL_HAL_GET_DEVICEID.

GetDeviceUniqueID() , конечно, имеет небольшой минус -
она даёт не тот uuid, который можно посмотреть в "Настройках"
девайса, а некий хэш от него. Но это не так важно.

Закрыто

Вернуться в «Программирование для КПК»