Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как установить соответствие между логическим диском и физическим? [D6, Win2k, WinXP]


Незнайка ©   (2003-08-26 16:15:00) 

Добрый всем день...

Subj? Грубо говоря какому физическому диску принадлежит логический диск, скажем, "D:" ;)


Игорь Шевченко   (2003-09-02 11:59:00) [1]

Alex Konshin © (02.09.03 11:41)

Я предлагал :)


Alex Konshin   (2003-09-02 11:41:00) [2]

Неа. Просто один том показывает, а другой - нет. Тихо, без шума, без пыли.

Про то и речь, что нет никаких гарантий, что будет всегда работать. По крайней мере я универсального решения не знаю.

Кстати, у меня ж тоже есть кое-какие наработки по Native API. Уж не ты ли предлагал когда-то их объединить?


Игорь Шевченко   (2003-09-02 11:18:00) [3]

Alex Konshin © (02.09.03 04:58)

Охотно верю, что обламывается, так как не было возможности тестировать на разных конфигурациях. Диагностика какая-нибудь вылезает ?


Alex Konshin   (2003-09-02 11:13:00) [4]

Сложость в том, что MS не дает никакого API для этого и не разъясняет как это можно сделать, по крайней мере я такой информации нигде не видел. QueryDosDevice мало чем поможет, реально ты только сможешь получить имена устройств, но устройства в случае логического диска и будут тома, например,
для моего E: это \Device\HarddiskVolume2,
а для I: это \Device\HarddiskDmVolumes\KitchenDg0\Volume2

Я так понимаю, пример не предполагает возможности присутствия других IDE контроллеров, возможно, что и SCSI он тоже не поймет.
Я не разбирался в примере, но предполагаю, что он просто пытается составить список томов для всех дисков и делает некие предположения об именах устройств для томов, и что эти предположения не всегда верны, что и видно на моем примере. Опять-таки, это тоже понятно почему: это никак не документировано MS и меняется от версии к версии (для NT будет одно, для XP - другое).

Ты можешь и сам поисcледовать этот вопрос. Скачай утилиту winobj с сайта www.sysinternals.com, и посмотри в фолдере \?? или \GLOBAL?? (зависит от системы) ссылки C:, D: и т.п..


Alex Konshin   (2003-09-02 10:46:00) [5]

Disk0: IDE
C: primary FAT32
E: logical NTFS
H: logical NTFS

Disk1: IDE
D: simple NTFS
I: simple NTFS - этого не показывает

Disk3: removable - не понимает, но это понятно

DVD,CD-RW и DVD-RW приводить не буду.
Как видно, ничего сверхестественного, никаких RAID и многодисковых томов у меня нет.


Незнайка   (2003-09-02 08:14:00) [6]

To Alex Konshin:
хм.. у меня на двух разных системах с разными дисками все ok.. Свою конфигурацию не покажешь?


Alex Konshin   (2003-09-02 04:58:00) [7]

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


Незнайка   (2003-09-01 20:36:00) [8]

To: Е-Моё имя
Ну потому что до поры до времени :)

To: Игорь Шевченко
Спасибо, то, что нужно =)

P.S. Всем спасибо..


Игорь Шевченко   (2003-09-01 15:01:00) [9]

В кладовке лежит программа DeviceIoControl - в ней пример установления связи между логическим и физическим диском для NT-систем.
В простейшем случае - QueryDosDevice


Е-Моё имя   (2003-09-01 12:30:00) [10]

почему же скрытый? ))))


Незнайка   (2003-09-01 12:22:00) [11]

неее.. такие предположения меня не устраивают... :( это будет такой большой скрытый глюк, если чего... :(


Anatoly Podgoretsky   (2003-08-31 22:22:00) [12]

Тогда для 9x
c - 1
d - 2
e - 1
f - 2
Но так не всегда


Незнайка   (2003-08-31 17:19:00) [13]

Имеется в виду простейший случай.. В системе 2 диска.. оба разбиты на логические диски.. требуется узнать какому физическому диску соответствует каждый из логических дисков..


Alex Konshin   (2003-08-30 07:01:00) [14]

Вопрос не совсем корректный. Один том может быть частью физического диска, но, с другой стороны, может занимать несколько дисков (например, в слючае RAID софтверных и хардверных, да и просто можно создать многодисковый том).
То есть, в простейших случаях еще можно как-то извратиться, но универсальное решение уж точно простым не будет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо