Посмотрите на код, который я разместил в своем ответе на вопрос . Автор вопроса так много раз менял текст вопроса, и последняя версия текста не ясно и не представляла, в чем заключалась первоначальная проблема.
В примере с исходным кодом C, который вы можете загрузить здесь , я покажу, как получить различную информацию о локальном диске с помощью другого Windows API. Важная вещь, которая вам нужна, это то, что некоторые преобразования имени, такие как DeviceType и DeviceNumber (полученные IOCTL_STORAGE_GET_DEVICE_NUMBER
), такие как следующие
DeviceType: 7, DeviceNumber: 5, PartitionNumber: 1
являются уникальными в операционной системе и могут использоваться для идентификации тех же устройств. Ссылку на оператор вы можете найти в документации IOCTL_STORAGE_GET_DEVICE_NUMBER контрольный код:
Значения в
Структура STORAGE_DEVICE_NUMBER
гарантированно останется неизменным до
устройство удалено или система
перезапущен. Это не гарантируется
постоянный при перезапуске устройства или
система перезагружается.
Таким образом, вы можете сравнить \\.\SCSI0
устройства и \\.\PhysicalDrive0
и выяснить соответствие.