В 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 не прошел. Что?