Здравствуйте, rasta_queen, Вы писали:
_>Как по PhysicalDrive узнать его LogicalDrive? _>Ну, как узнать его буковку? Понятно, что одному physical drive может соответствовать несколько логических дисков. Но я точно знаю, что я открываю Removable_Media, которому может соответствовать только один логический диск.
Через WMI, естественно.
Win32_PhysicalMedia
Win32_DiskDriveToDiskPartition
Win32_DiskPartition
Win32_LogicalDiskToPartition
Win32_LogicalDisk
Как по PhysicalDrive узнать его LogicalDrive?
Ну, как узнать его буковку? Понятно, что одному physical drive может соответствовать несколько логических дисков. Но я точно знаю, что я открываю Removable_Media, которому может соответствовать только один логический диск.
С++.
12.04.06 21:45: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
_>Как по PhysicalDrive узнать его LogicalDrive? _>Ну, как узнать его буковку? Понятно, что одному physical drive может соответствовать несколько логических дисков. Но я точно знаю, что я открываю Removable_Media, которому может соответствовать только один логический диск.
_>С++.
Раз есть слово "буква", то речь идет о Windows?
На других форумах (WINAPI,lowlevel) этот вопрос уже поднимался.
Можете поискать по словам
— QueryDosDevice
— IOCTL_DISK_GET_DRIVE_LAYOUT
— IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS
P.S.
С помощью сторонних утилит Removable Media можно разбить также как и обычный жесткий диск.
Windows при этом спокойно понимает такую ситуацию.
Так что закладываться на то, что на Removable Media не может быть более одного LogicalDrive я бы не стал.
Re[2]: Как по PhysicalDrive узнать его LogicalDrive?
Здравствуйте, MShura, Вы писали:
_>>Как по PhysicalDrive узнать его LogicalDrive? _>>Ну, как узнать его буковку? Понятно, что одному physical drive может соответствовать несколько логических дисков. Но я точно знаю, что я открываю Removable_Media, которому может соответствовать только один логический диск.
_>>С++.
MS>Раз есть слово "буква", то речь идет о Windows?
MS>На других форумах (WINAPI,lowlevel) этот вопрос уже поднимался. MS>Можете поискать по словам MS>- QueryDosDevice MS>- IOCTL_DISK_GET_DRIVE_LAYOUT MS>- IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS
MS>P.S. MS>С помощью сторонних утилит Removable Media можно разбить также как и обычный жесткий диск. MS>Windows при этом спокойно понимает такую ситуацию. MS>Так что закладываться на то, что на Removable Media не может быть более одного LogicalDrive я бы не стал.
Все дело в том, что я полностью уверен, что на флэшке не будет разбиения на диски. Эта флэшка будет спользоваться исключительно для записи видео не в своем формате.
Re[3]: Как по PhysicalDrive узнать его LogicalDrive?
_>Все дело в том, что я полностью уверен, что на флэшке не будет разбиения на диски. Эта флэшка будет спользоваться исключительно для записи видео не в своем формате.
И воткнуть другую флешку в разъём пользователь не сможет даже по ошибке, ввиду того, что разъём тоже будет переделан на нестандартный ?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Как по PhysicalDrive узнать его LogicalDrive?
Здравствуйте, srggal, Вы писали:
S>Здравствуйте, rasta_queen, Вы писали:
_>>Все дело в том, что я полностью уверен, что на флэшке не будет разбиения на диски. Эта флэшка будет спользоваться исключительно для записи видео не в своем формате.
S>И воткнуть другую флешку в разъём пользователь не сможет даже по ошибке, ввиду того, что разъём тоже будет переделан на нестандартный ? S>
Да там все серьезно сделано. На флэшке пишется сектор идентификатора в определенное место во время форматирования флэшки, потом на эту флэшку пишется видео, а потом воспроизводится на компьютере.
Ну, и соответственно я не могу прочитать сектор идентификатора, потому что когда я открываю флэшку как логический диск, у меня все сдвигается на число скрытых секторов. А как физический диск. я могу ее прочитать полностью. Отсюда мне надо через физический диск узнать ее логический и наоборот.
Re[2]: Как по PhysicalDrive узнать его LogicalDrive?
_>>Как по PhysicalDrive узнать его LogicalDrive? _>>Ну, как узнать его буковку? Понятно, что одному physical drive может соответствовать несколько логических дисков. Но я точно знаю, что я открываю Removable_Media, которому может соответствовать только один логический диск.
S4>Через WMI, естественно. S4>Win32_PhysicalMedia S4>Win32_DiskDriveToDiskPartition S4>Win32_DiskPartition S4>Win32_LogicalDiskToPartition S4>Win32_LogicalDisk
У WMI один недостаток — его можно отключить/запретить и тогда программа не будет работать.