MSStorageDriver_ATAPISmartData, структура VendorSpecific

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: MSStorageDriver_ATAPISmartData, структура VendorSpecific

Сообщение awl100Alex » 14.05.2009 (Чт) 0:45

Думаю, что с HDD разобрались. Теперь, что касается второго вопроса насчет MSAcpi_ThermalZoneTemperature - температуры CPU... Эта штука будет работать только на компах у которых присутствует аппаратная поддержка Термальной зоны в структуре ACPI.
Есть такое чудо или нет, можно посмотреть в Диспетчере устройств подраздел Системные устройства. У меня такой структуры нет, но(!), как ни странно, такая маленькая программулька, как EVEREST с легкостью определяет температуру CPU и отображает ее в динамике(!). Тоже самое показала программка SpeedFan. Проверил по BIOS’у – совпадает именно с датчиком на кристалле! :) Оказывается, если на MB присутствует контроллер в виде чипа, к примеру, у меня - ITE IT8705F, то мониторить температуру CPU все-таки можно! Другое дело, что документации нет, как именно построить программный интерфейс взаимосвязи с этим чипом?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: MSStorageDriver_ATAPISmartData, структура VendorSpecific

Сообщение iGrok » 14.05.2009 (Чт) 1:20

Space писал(а):Короче, люди, нужна структура. И не нервируйте меня! :)

Какая нафиг структура? Это обычная строка-идентификатор. Строиться она может как угодно, вплоть до наличия зависимости от версии Windows. Естественно, это только предположение, но такой вариант не исключён.

Space писал(а):Но ведь ID диска всегда содержит и его имя? И что значит конечный "_0"? Всегда ли он будет таким или как его учитывать для получения нормального имени ключа? :)

Ну не знаю как насчёт всегда, но у меня содержит.
Там просто Name выглядит так: "IDE\DiskSAMSUNG_HM080II_________________________YE100-15\5&24cbc6ab&0&0.0.0_0"
А ключ - так: "HKLM\SYSTEM\CurrentControlSet\Enum\" + "IDE\DiskSAMSUNG_HM080II_________________________YE100-15\5&24cbc6ab&0&0.0.0".
Т.е. в Name лишнее "_0" в конце. Посмотри на своём винте, так же у тебя, или по-другому..

awl100Alex писал(а):Оказывается, если на MB присутствует контроллер в виде чипа, к примеру, у меня - ITE IT8705F, то мониторить температуру CPU все-таки можно! Другое дело, что документации нет, как именно построить программный интерфейс взаимосвязи с этим чипом?

Ну эверест всё-таки грузит свой драйвер, так что у него возможностей поболе будет.
SpeedFan тоже работает через драйвер GiveIO.

Видимо, они ищут адреса контроллеров, и работают с ними напрямую:
"Scanning ISA BUS at $0290...
SuperIO Chip=NS PC87591
Scanning AtiIgp SMBus at $8410...
SMART Enabled for drive 0
Found SAMSUNG HM080II (80,0GB)
Found ACPI temperature (41,0C)"

У того же спидфана в папке лежит файлик со списком адресов(или чего-то подобного) устройств PCI-шины.
Причём, судя по дебаг-логу того же спидфана, он перебирает все возможные адреса в поисках нужного контроллера.

А Эверест показывает мне сейчас температуру ядер проца как "-49" по цельсию. Забавно.
label:
cli
jmp label

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: MSStorageDriver_ATAPISmartData, структура VendorSpecific

Сообщение Space » 14.05.2009 (Чт) 10:40

гражданина iGrok, ответьте на мой вопрос о концевом "_0", плиз... :)

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: MSStorageDriver_ATAPISmartData, структура VendorSpecific

Сообщение iGrok » 14.05.2009 (Чт) 11:12

Space писал(а):гражданина iGrok, ответьте на мой вопрос о концевом "_0", плиз... :)

Уже.
iGrok писал(а):Там просто Name выглядит так: "IDE\DiskSAMSUNG_HM080II_________________________YE100-15\5&24cbc6ab&0&0.0.0_0"
А ключ - так: "HKLM\SYSTEM\CurrentControlSet\Enum\" + "IDE\DiskSAMSUNG_HM080II_________________________YE100-15\5&24cbc6ab&0&0.0.0".
Т.е. в Name лишнее "_0" в конце. Посмотри на своём винте, так же у тебя, или по-другому..
label:
cli
jmp label

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: MSStorageDriver_ATAPISmartData, структура VendorSpecific

Сообщение Space » 14.05.2009 (Чт) 12:06

у меня тоже "_0". Так что делать? Отбрасывать 2 байта или писать код для отброса "_xxx..."? Или там может вообще ничего не быть лишнего?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: MSStorageDriver_ATAPISmartData, структура VendorSpecific

Сообщение iGrok » 14.05.2009 (Чт) 12:14

Ну если исходить из имеющейся информации, я бы попробовал найти ключ по содержанию всей строки, потом откинуть конец строки по "_", и попробовать найти уже такой ключ, а если ни то ни то не получится - тогда попробовал бы выдрать из самой строки.

Это, конечно, всё несколько кривовато, поэтому я бы ещё поковырялся в WMI на предмет поиска какой-либо ещё связанной информации. Может, где и проскакивает имя устройства. Я в этом почти уверен.
label:
cli
jmp label

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: MSStorageDriver_ATAPISmartData, структура VendorSpecific

Сообщение Space » 14.05.2009 (Чт) 12:39

имена HDD можно получить из Win32_DiskDrive, но тут вопрос, будут ли objItem_Win32_DiskDrive соответствовать objItem_MSStorageDriver_ATAPISmartData? И вообще, objItem имеют ли индекс :?: - мне надо связать свой массив данных с objItem... И может ли этот индекс меняться для одной и той же objItem?
А где этот специалист по WMI - пьяный Джо или одноглазый Джо, или как его там?.. :)

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: MSStorageDriver_ATAPISmartData, структура VendorSpecific

Сообщение awl100Alex » 15.05.2009 (Пт) 1:00

iGrok писал(а):Ну если исходить из имеющейся информации, я бы попробовал найти ключ по содержанию всей строки, потом откинуть конец строки по "_", и попробовать найти уже такой ключ, а если ни то ни то не получится - тогда попробовал бы выдрать из самой строки.

Ну вот, а говорили «велосипед»... Столько геморроя из-за чепухи. :D
Давайте прикинем (если нужно все во лишь получить имя устройства): условный разделитель “Disk” будет присутствовать всегда, и вряд ли найдется такой производитель, который заполнит все 40 полей резерва именем своего устройства. А это значит, что условный разделитель "_" тоже будет присутствовать всегда. Вопросы есть???.. :wink:
iGrok писал(а):Видимо, они ищут адреса контроллеров, и работают с ними напрямую

А можно ли как-то это использовать? То есть обратится к DLL скажем EVEREST, а он уже через свой драйвер выдаст то, что нам нужно. Как можно получить имена и параметры экспортируемых функций DLL того же EVEREST?

Пред.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Mail.ru [бот] и гости: 53

    TopList  
cron