DefineDosDevice GetVolumeNameForVolumeMountPoint

В MSDN есть хороший пример изменения букв дисков по адресу: http://msdn.microsoft.com/en-us/library/windows/desktop/aa364014(v=vs.85).aspx

Единственная проблема в том, что он не работает в моей системе Windows 7. Я вызываю EXE из окна DOS с правами администратора. Я начинаю с флэш-накопителя на E: я могу использовать пример MSDN для удаления E: Но когда я затем использую пример MSDN для назначения F: тому же флэш-накопителю, первоначальный DefineDosDevice для F: завершается успешно, но последующий GetVolumeNameForVolumeMountPoint терпит неудачу. таким образом, SetVolumeMountPoint не работает. Я понимаю, что функция исходного DefineDosDevice состоит в том, чтобы создать букву диска, чтобы GetVolumeNameForVolumeMountPoint мог подключиться к чему-то и, таким образом, вернуть имя тома, но GetVolumeNameForVolumeMountPoint ведет себя так, как если бы исходный DefineDosDevice не прошел. Что?


person Frank Natoli    schedule 16.02.2012    source источник


Ответы (1)


Проблема заключалась во втором аргументе ChangeLetter.exe при определении нового диска. Вы должны указать номер раздела. Предположим, что USB-накопитель настроен на E:, и вы хотите переместить его на F:. Вы должны сделать следующее:

ChangeLetter -r E: ChangeLetter F: \device\harddisk1\partition1

Жесткий диск считает с нуля. Раздел считается с одного.

person Frank Natoli    schedule 21.02.2012