HW_PROFILE_INFO Ошибка Windows 8.1
Я использую этот фрагмент кода для уникальной идентификации компьютеров, но, похоже, он не работает должным образом в Windows 8.1.
HW_PROFILE_INFO HwProfInfo;
if (!GetCurrentHwProfile(&HwProfInfo))
return;
std::wstring ws(HwProfInfo.szHwProfileGuid);
std::string GUID(ws.begin(), ws.end());
printf("%s\n", GUID.c_str());
Каждый компьютер с Windows 8.1 генерирует этот GUID:
{} bbed3e02-0b41-11e3-8249-806e6f6e6963
Как это возможно или что я делаю не так?
1 ответ
Это связано с профилями оборудования, которые были исключены в Windows 7 (IIRC). Это значение является только дескриптором текущего аппаратного профиля, если таковой существует, и его следует использовать только для параметров конфигурации, а не как ключ для уникальной идентификации систем.
Для этой и более поздних версий окон она всегда возвращает одинаковые значения; Я ожидаю, что это все еще проходит, чтобы предотвратить неожиданные сбои приложения.
Это значение никогда не должно было использоваться для уникальной идентификации компьютеров, так как оно предназначалось для управления настройками, которые меняются, когда система была установлена / отстыкована / применен другой профиль.