Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.22;
Скачать: CL | DM;

Вниз

Инфо по винту...   Найти похожие ветки 

 
DION   (2004-07-12 08:14) [0]

Народ, подскажите, как узнать имя винта...?


 
DC-AC   (2004-07-12 09:10) [1]

В смысле имя ? Как его мама при рождении назвала что ли ? Или логическое имя диска ? Или название производителя/модели ?
Вот видишь сколько вопросов...


 
DION   (2004-07-12 09:41) [2]

Мануфактуру...


 
DC-AC   (2004-07-12 10:50) [3]

Тебе Алекс Коншин нужен. К сожалению запамятовал его страничку, посмотри на этом сервере, может и есть ссылка. У него есть чудный модуль для работы с HDD, вот с помощью него и "вытянешь" из контроллера HDD его производителя. Если поиски не увенчаются успехом - напиши мне, скину исходники. Может правда не самые новые...


 
Alex Konshin ©   (2004-07-12 11:01) [4]

http://home.earthlink.net/~akonshin/index.htm


 
Aldor_   (2004-07-12 11:24) [5]

Alex Konshin ©   (12.07.04 11:01) [4]

 Уже давно хотел задать Вам вопрос: в Вашем примере первым аргументом функции CreateFile является "\\.\Scsi", но при этом совершенно корректно читается информация об IDE-винчестерах! Хотя я по наивности думал, что нужно использовать "\\.\PHYSICALDRIVEx".

 И еще: возможно я недочитал хелп, но почему используются такие пляски с DriveNumber: $A0 or ((DriveNumber and 1) shl 4)?

 И последнее, если позволите:

for iController := 0 to maxController do
 begin
   for iDrive := 0 to 4 do
   begin
     try
       Result := GetIdeDiskSerialNumber(iController,iDrive);
       if Result<>"" then Exit;
     except
       // ignore exceptions
     end;
   end;
 end;

Почему Вы останавливаетесь на первом же попавшемся устройстве? А если их несколько?

 Буду благодарен за ответы. С уважанием.


 
Alex Konshin ©   (2004-07-12 12:15) [6]

Так надо (c) Бриллиантовая рука :)

\\.\Scsi потому, что на самом деле тот Ioctl код, что я использую, работает не с драйвером винчестера, а с дравером контроллера. Другое дело, что он потом передает команду драйверу соответствующего устройства. А сделано так хитро потому, что это позволяет обойти запрет доступа к устройству, т.к. по умолчанию для дисков это может делать только администратор, а вот для контролеров почему-то все, кто угодно.

Почему $A0 or ((DriveNumber and 1) shl 4)? Вообще-то биты 7 и 5 obsolete, но вроде как желательно их установить (и не спрашивайте меня "почему?"). Бит 4 - номер девайса (т.к. для ATA их может быть всего два, то бита достаточно). Смотрите http://www.t13.org/docs2003/d1532v1r4.pdf

Почему Вы останавливаетесь на первом же попавшемся устройстве? А если их несколько? Потому что это пример. Потому что функция возвращает только один результат - строку. Потому что обычно люди используют его для получения серийного номера первого винчестера (обычно для привязки к железу, и не спрашивайте меня "почему?"). Если вам нужны другие - переделать не составляет большого труда.


 
Aldor_   (2004-07-12 12:18) [7]

Большое спасибо.

 А вот это:
  > что это позволяет обойти запрет доступа к устройству
 действительно круто :))))


 
Alex Konshin ©   (2004-07-12 12:25) [8]

Aldor_   (12.07.04 12:18) [7]
Большое спасибо.
А вот это:
 > что это позволяет обойти запрет доступа к устройству
действительно круто :))))

Собственно, это и есть мое личное know how в том примере, остальное люди делали и знали раньше. А вот собственно для SCSI такой прием не проходит :(


 
DION   (2004-07-12 12:45) [9]

Всем пасиб...
Особенный респект to Alex Konshin...
Как раз то что нужно...



Страницы: 1 вся ветка

Текущий архив: 2004.08.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.055 c
1-1091948146
k-sergey
2004-08-08 10:55
2004.08.22
Про поток и TImage


6-1087564434
x_byte
2004-06-18 17:13
2004.08.22
IdHTTP и cookies


14-1091615468
Rept
2004-08-04 14:31
2004.08.22
Кто знает оф. сайт?


14-1091621952
ArMellon
2004-08-04 16:19
2004.08.22
Вин ХР Интернет через общий доступ...


1-1092028242
Shadow[AN]
2004-08-09 09:10
2004.08.22
Динамическое создание компонентов