Как преобразовать букву диска в имя физического диска в C ++?

У меня вопрос такой:
При наличии автономного диска, подключенного к моей машине с Windows, как я могу получить его объемное письмо?

Сценарий:
Мне нужно создать обработчик для общего хранилища (с функцией CreateFile), чтобы использовать его в функции DeviceIoControl (необходимо выполнить резервирование SCSI).

Функция «CreateFile» получает имя физического диска (например, \. \ PhysicalDisk1) или букву тома диска (например, \. \ E :).

Моя проблема в том, что я не хочу использовать имя физического диска, только букву диска.
Это прекрасно работает, когда диск подключен к сети, но я должен поддерживать также, когда диск отключен.

Есть ли способ определить букву, когда устройство / диск находится в автономном режиме?
Я предполагаю, что есть, потому что, когда я получаю диск онлайн, Windows автоматически дает ему правильную букву. Так что, если операционная система знает, что будет буквой, должен быть API или инструмент, который я тоже могу использовать.

Спасибо,
Дэниел.

0

Решение

К сожалению, когда диск отключен, буква диска доступна для использования другим диском, который может быть вставлен. Таким образом, хотя Windows запоминает, какую букву диска имел конкретный диск, и пытается повторно использовать ту же букву при повторной вставке, если был вставлен другой диск, который использовал запомненную букву, то старый диск получит другую букву если это тогда вставлено.

Но вы не можете открыть физический диск ни по имени, ни по букве, если этот диск в данный момент не подключен. Вы просто получите эквивалент «Файл не найден».

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector