Нет, это не связано с серийным номером жесткого диска.Это просто произвольное число, сгенерированное каждым форматом.
Менее изменяющееся число содержится в основной загрузочной записи, называемой DiskID, но оно также меняется в случае восстановления MBR (например, восстановления антивируса или просто какого-либо действия низкого уровня).).Однако вы можете прочитать его, используя команду diskpart
в Windows с командами: select disk 0
, uniqueid disk
.
В качестве возможного варианта вы можете отправить запрос IOCTL_STORAGE_QUERY_PROPERTY
, используя DeviceIoControl()
и StorageDeviceUniqueIdProperty
в качестве STORAGE_PROPERTY
для данного устройства, и получитьуникальный идентификатор.
Другим вариантом является перечисление устройств с использованием пользовательского PnP API и использование идентификатора PnP для уникальной идентификации дисков.
Существует также возможность запросить WMI для Win32_PhysicalMedia
класса, но я не уверен, насколько он надежен.
Я считаю, что для всех решений потребуются административные привилегии.