Определения устройств в Windows
Современным пользователям ПК повезло – им не довелось сталкиваться с проблемами определения устройств в системе, которые существовали до времен последних модификаций 486 и первых Пентиумов. Windows версий 1, 2 и 3 существовала намного раньше, и тогда же для определения всех устройств в системе требовались драйверы. В отличие от современных систем, можно было установить и неправильный драйвер для какой-то «железки», и она переставала работать. Для уточнения модели приходилось даже разбирать ПК и искать на платах коды и надписи производителей.
С появлением технологии PnP распознавание устройств намного упростилось, но и ту пору были проблемы с аппаратурой, которая не поддерживала новый стандарт. Уже позднее, после 2000 года, была окончательно реализована технология ACPI BIOS, и с этих пор разбирать ПК для «интереса» стало ненужной операцией. В BIOS до сих пор есть команда «Автоматически переопределять список устройств», в результате чего каждое включение ПК сопровождается построением специальных таблиц в памяти. В ином случае данные не обновляются, что ведет к проблемам при подключении новых устройств.
Каждому устройству соответствует одна таблица, в которой присутствует много полей. Некоторые из полей общедоступны и поддерживаются функциями BIOS и API Windows, о других полях даже программист не может получить информации – только Windows.
- Среди известных полей наибольшую пользу несут следующие:
- Идентификатор устройства (ID)
- Модель устройства
- Номер ревизии
- Создатель ревизии
- Карта используемых портов и прерываний
Некоторые поля могут быть обработаны в группах, что позволяет разделить сетевые и внутренние устройства, отделить дисковые устройства от пакетных и т.д. ID чаще всего означает номер компании, а модель – тип устройства. В системе присутствует списочный файл txtsetup.sif, где закодированы все известные производители и модели – собственно, они и появляются в окошке – «Обнаружено новое устройство», а дальше идет поиск конкретных драйверов для них. Даже если устройство не будет распознано автоматически, его ID всегда можно будет узнать из свойств данной аппаратуры, чтобы найти драйвер самостоятельно – по номеру модели. ACPI BIOS хорошо документирован, что, в принципе, позволяет определять состав устройств ПК даже для отличных от Windows систем. К примеру, для сервисных MS-DOS утилит, для иных операционных систем.