Сообщение
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, который можно посмотреть в "Настройках"
девайса, а некий хэш от него. Но это не так важно.