![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как установить соответствие между логическим диском и физическим? [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 софтверных и хардверных, да и просто можно создать многодисковый том).
То есть, в простейших случаях еще можно как-то извратиться, но универсальное решение уж точно простым не будет.