Главная страница
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.046 c
1-1092041712
Evgeniy
2004-08-09 12:55
2004.08.22
Вопрос о Memo (добавление в файл).


14-1091533035
}|{yk
2004-08-03 15:37
2004.08.22
4 уровневая архитектура???


1-1091599712
CoToR
2004-08-04 10:08
2004.08.22
Добавление свойств в OCX в ActiveX Form


3-1091388558
Начинающий
2004-08-01 23:29
2004.08.22


3-1090998979
pashtet
2004-07-28 11:16
2004.08.22
Как SQL запросом создать ползователя и пароль ему?