Почему этот код генерирует разные числа? - PullRequest
1 голос
/ 20 мая 2010

У меня есть эта функция, которая создает уникальный номер для комбинации жесткого диска и процессора.

    GetVolumeInformation(drv, szNameBuffer, 256, &dwHddUnique, NULL, NULL, NULL, NULL);

    SYSTEM_INFO si;
    GetSystemInfo(&si);

    dwProcessorUnique = si.dwProcessorType + si.wProcessorArchitecture + si.wProcessorRevision;
    dwUniqueKey = dwProcessorUnique + dwHddUnique;

Если я отформатирую свой жесткий диск и установлю новую Windows, он выдаст разные числа. Есть идеи, почему?

Спасибо.

Edit:

ОК, понял (http://msdn.microsoft.com/en-us/library/aa364993(VS.85).aspx):

Эта функция возвращает громкость серийный номер, который работает система назначает, когда жесткий диск отформатирована. Программно получить серийный номер жесткого диска, что производитель назначает, используйте Windows Инструменты управления (WMI) Свойство Win32_PhysicalMedia SerialNumber.

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

1 Ответ

0 голосов
/ 20 мая 2010

Может быть, потому что, когда вы форматируете свой жесткий диск, он генерирует новый уникальный UUID для него? (поэтому dwHddUnique будет другим)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...