Мне нужно узнать параметры аппаратуры из BIOS, я где то достал код который делает дамп памяти BIOS (через \\Device\PhysycalMemory). Кто знает в какой области памяти BIOS написано про аппартную конфигурацию компьютера. Меня интерисует: 1. Информация о самой BIOS 2. Информация о материнке 3. Информация о жёстком диске Заранее благодарен
1. DMI 2. DMI 3. В биосе -- нет, надо идентифицировать отдельно Для чтения DMI нужен доступ только к F-сегменту биос, т.е. 0F0000h-0FFFFFh.
BIOS он большой, конкретнее что интересует? Четкой структуры, там нет. Есть DMI(Desktop Management Interface). Содержит много разной информации ожелезе. Наиболее свежее и полное описание в файле DSP0134_old.pdf Файл описывает System Management BIOS (SMBIOS) Ищешь сигнатуру _DMI_ дальше разбираешь табицы. 1. Название производителя ищется в ключевых точках, после проверяется. Зависит от поставщика биоса. Опять таки DMI 2. Информация о материнки, это DMI. Есть еще ID BIOS(как, только его не обызвают), оно отрожает название материнки. Его производителя. И зависит от поставщика биоса в DMI не отражен. 3. Нету там такой.
Информация о сменном железе (дисководы, кол-во ОЗУ и прочая) лежит в КМОП-памяти и на современных машинах уже не стандартизована, хотя раньше была...
спасибо за ответы через гугль нашёл файл DSP0134.pdf http://www.google.ru/search?hl=ru&newwindow=1&q=DSP0134.pdf&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr= вроде написана дата: May 2, 2007 скачаю посмотрю
Всем спасибо. Скачал разобрался написал программу, всё отлично работает. Но разочаровался: серийный номер моей материнской платы MB-1234567890, и мне кажется он у всех такой, вообще ерунда какая-то...
rpy3uH'BIOS ID DMI, вещь не точная. У меня он номер материнской не выводит. Но, в качестве MB ID береться BIOS ID. Для AWARD биоса есть еще вот такие данные. Код (Text): ps:=Ptr($F000,$E060); if Pos('Award',ps^)<>0 then IsAward:=True else IsAward:=False; if IsAward then begin WriteLn(ps^); pS:=Ptr($F000,$EC70); WriteLn('BIOS ID: ',pS^); p:=Ptr($F000,$ECE0); WriteLn('BIOS Number: ',p); ps:=Ptr($F000,$ECE9); end У других биосах будет по другому.
возможно так и есть, но второй структуре (type 1) под названием System Information есть поле UUID оно вроде уникальное