Программа установки обнаружила работу устройства pnp

Программа установки обнаружила работу устройства pnp

В главе 3 рассматривался вариант инсталляции Example.sys &#8212 драйвера "в-стиле-NT" (legacy driver) при помощи Мастера Установки нового оборудования и inf-файла.

Процесс установки драйвера для PnP устройства, которое предъявляет системе идентификационные коды, отличается тем, что Мастер Установки нового оборудования самостоятельно находит драйвер (если для данного типа оборудования драйвер уже устанавливался ранее хотя бы раз) либо предлагает пользователю выбрать более подходящий драйвер, который заявляет соответствующие коды в соответствующей установочной секции inf-файла.

Если установка успешно завершена Мастером Установки, процедуры драйвера DriverEntry и AddDevice должны, кроме того, подтвердить, что аппаратное обеспечение, которым их "пригласили" управлять, удовлетворяет требованиям выбранного драйвера, подтверждая правильность выбора именно этого варианта установки. Другими словами, не исключена ситуация, когда интерактивный выбор может довести установку до конца, но инициализация устройства все же завершится неудачей (потому что собственно программный код драйвера не "согласился" работать с предложенной аппаратурой в предложенных условиях).

В момент, когда подключается PnP устройство, в результате взаимодействия нескольких подсистем инициируется загрузка нового драйвера.

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

  1. PnP Менеджер режима ядра (см. документацию DDK по указателю на ключевую фразу "Device Installation Components") уведомляет PnP Менеджер пользовательского режима о том, что в системе обнаружено новое устройство со специфическими кодами PnP идентификации (кодами производителя, модели, версии и т.п.). PnP Менеджер пользовательского режима конструирует список возможных драйверов для нового устройства, в частности, проверяется системный файловый каталог inf-файлов на наличие подходящего inf-файла (по полученной от нового устройства информации). Инсталляционные inf-файлы для дополнительно доставляемых драйверов чаще всего попадают туда под новым именем oemXxx.inf, где Xxx &#8212 это целое число, начиная с 0.
  2. Если подходящий inf-файл не обнаружен, система откладывает все последующие действия до момента, пока в систему войдет пользователь с достаточным уровнем привилегий. Этому пользователю и предлагается диалог с Мастером Установки Оборудования (Add Hardware Wizard). Пользователь должен указать место (чаще всего, CD), где размещены файлы нового драйвера и его inf-файл.
  3. Как только выявлен приемлемый inf-файл, начинается его обработка при помощи библиотеки вызовов Configuration Manager API (CfgMgr API, см. документацию DDK по указателю на ключевую фразу "Device Installation Components"). Выполняется копирование файлов драйвера и модификация информации Системного Реестра. Эта работу делает, главным образом, PnP Менеджер режима ядра.
  4. На основе директив inf-файла PnP Менеджер режима ядра загружает все фильтр-драйверы нижнего уровня, затем функциональный драйвер и, наконец, верхние фильтр-драйверы, предназначенные для обслуживания нового устройства. Драйверу, который находится на вершине стека, затем направляются соответствующие PnP запросы (IRP пакеты с кодом IRP_MJ_PNP), включая IRP_MN_START_DEVICE.

Процесс автоматической установки PnP устройств сильно зависит от способности устанавливающего программного обеспечения локализовать нужный inf-файл и секции в нем, относящиеся к драйверу. Особое значение имеет в данном случае то, как указываются в inf-файле наименования классов и идентификаторы устройств.

Каждое устройство, спроектированное по спецификации PnP, должно иметь идентификатор, который однозначно определяет модель данного устройства. Этот идентификатор должен быть предоставлен шинному аппаратному обеспечению (а следовательно, и шинному драйверу) по поступлении запроса. Разумеется, шинный драйвер подает запрос сразу же, как только новое устройство подключено. Секция [Models] в inf-файле содержит значение hw_id, играющее роль идентификатора модели.

В примере инсталляционного inf-файла для драйвера Example.sys (глава 3) в роли такого идентификатора выступила строка "*svpBookExample", что было приемлемо для не-PnP устройства. Значение, вводимое в поле hw_id для PnP устройств, должно придерживаться определенного формата, изменяющегося в зависимости от типа шины, к которой устройство подключается, но обычно идентификатор поступает в устанавливающий программный код в виде:

Читайте также:  Карта гугл сочи с улицами и домами

Устанавливающие системные сервисы весьма просто могут проследить, согласуется ли запись в inf-файле с возвращаемым вновь подключенным устройством идентификатором. В той же записи inf-файла допускается описание списка совместимого аппаратного обеспечения (разумеется, если совместимость существует) в форме задания дополнительных идентификаторов устройств. В случае, если точное совпадение с полученным ID устройства не обнаружено в данном inf-файле, делается попытка найти совпадения по совместимым идентификаторам.

PnP идентификаторы PCI устройств

Полный идентификатор для PnP PCI устройств имеет форму

Здесь vvvv является идентификатором поставщика (производителя), зарегистрированным в группе PCI Special Interest Group, dddd &#8212 идентификатор, присвоенный производителем данной PCI карте, ssssssss &#8212 идентификатор конструкции (subsystem ID), rr &#8212 номер версии разработки. Все упомянутые поля вводятся как шестнадцатеричные числа. Поле ssssssss обычно вводится как нулевое.

Кроме того, допустимо в inf-файлах представлять усеченные варианты идентификационной информации, например:

Здесь cc является кодом базового класса из конфигурационного пространства PCI устройства, ss &#8212 код подкласса, pp &#8212 идентификатор программного интерфейса.

PnP идентификаторы SCSI устройств

Полный идентификатор для PnP SCSI устройств имеет форму

Здесь tttt является типо-кодом устройства, vvvvvvvvявляется 8-символьным идентификатором поставщика (производителя), pppppppppppppppp&#8212 16 символьный идентификатор устройства, rrrr &#8212 номер версии разработки.

Кроме того, допустимо в inf-файлах представлять усеченные варианты идентификационной информации, например:

Здесь gggg является одним из групповых типов (generic type) классов, приведенных в таблице 12.11.

Таблица 12.11. Типы SCSI u IDE устройств

SCSI код Устройство Тип Групповой тип
DIRECT_ACCESS_DEVICE (0)

Disk GenDisk SEQUENTIAL_ACCESS_DEVICE (1) Последовательное Sequential PRINTER_DEVICE (2) Принтер Printer GenPrinter PROCESSOR_DEVICE (3) Сканнеры, принтеры и т.п. Processor WRITE_ONCE_READ_MULTIPLE_DEVICE (4) Worm Worm GenWorm READ_ONLY_DIRECT_ACCESS_DEVICE (5) CD ROM CdRom GencdRom SCANNER_DEVICE (6) Сканирующее Scanner GenScanner OPTICAL_DEVICE (7) Оптические диски Optical GenOptical MEDIUM_CHANGER (8) Устройство со сменными носителями Changer ScsiChanger либо
GenChanger (для IDE) COMMUNICATION_DEVICE (9) Сетевое Net ScsiNet

Для SCSI диска, имеющего полный установочный PnP идентификатор SCSIDiskSEAGATE_ST39102LW____0004, шинный драйвер сконструирует также и следующий список идентификаторов:

PnP идентификаторы IDE устройств

Идентификаторы IDE устройств схожи с идентификаторами для SCSI устройств. Для IDE допустимо в inf-файлах представлять следующие варианты идентификационной информации, например:

Здесь tttt является типо-кодом устройства (см. таблицу 12.11), v_v является 40-символьным идентификатором поставщика (производителя), rrrrrrrr &#8212 8-сим-вольный номер версии разработки. В случае, если идентификатор поставщика короче 40 символов, то он дополняется символами подчеркивания. Пример для третьего варианта представления PnP идентификационной информации в inf-файле:

PnP идентификаторы USB устройств

Полный идентификатор для PnP USB устройств имеет форму

Здесь vvvv является идентификатором поставщика (производителя), зарегистрированным в Комитете USB производителей, dddd &#8212 идентификатор, присвоенный производителем данной модели устройства, rr &#8212 номер версии разработки. Все упомянутые поля вводятся как шестнадцатеричные числа.

Кроме того, допустимо в inf-файлах представлять усеченные варианты идентификационной информации, например:

Здесь cc является кодом базового класса из полученного дескриптора устройства или дескриптора интерфейса данного USB устройства, ss &#8212 код подкласса, pp &#8212 идентификатор протокола.

PnP идентификаторы устройств IEEE-1394 (FireWire)

Полный идентификатор для PnP USB устройств имеет форму

Здесь VendorName является наименованием поставщика (производителя), ModelName &#8212 идентификатор, присвоенный производителем данной модели устройства, UnitSpecId и UnitSwVersion &#8212 идентификаторы программных спецификаций, получаемые из конфигурационных ПЗУ подключаемых устройств, например:

Проблема установки драйверов возникает при установке операционной системы, а также при повреждении файлов драйверов или реестра Windows. Иногда проблемы с драйверами бывает исправить нелегко, в тех случаях, когда система или пользователь установили «неправильный» драйвер. Далее материал будет изложен применительно к операционной системе Windows XP, хотя многое подойдёт и для Vista и Windows 7 с небольшими изменениями. Условно установку драйверов можно разделить на шесть способов.

1. Установка драйвера на обнаруженное системой устройство. Мастер нового оборудования.

Как известно после установки или подключения нового устройства Windows автоматически обнаруживает PnP устройство и пытается подобрать и установить подходящий драйвер. Если подходящий драйвер найден, то система автоматически устанавливает его и выдаёт сообщение типа «Оборудование установлено и готово к работе». Если устройство не обнаруживается, то нужно заглянуть в «Диспетчер устройств», чтобы убедиться что оно не обнаружено ранее и не фигурирует там под знаком вопроса или с восклицательным знаком. Эти знаки обычно желтого цвета. Если знаки вопроса и восклицательные знаки в «Диспетчере устройств» присутствуют, то есть два варианта. Первый это удалить это неустановленное устройство, чтобы дать системе обнаружить его вновь. Для того чтобы система вновь обнаружила устройство нужно после его удаления в окне «Диспетчер устройств» нажать вверху кнопку «Действие» и выбрать «Обновить конфигурацию оборудования». Второй вариант это щелкнуть по знаку вопроса или значку с восклицательным знаком и в открывшемся окне либо нажать кнопку «Переустановить» или если её нет выбрать закладку «Драйвер», а на открывшейся закладке нажать кнопку «Обновить драйвер». В обоих случаях будет запущен «Мастер обновления оборудования». Иногда Windows ошибается в подборе драйверов и в этом случае работа устройства невозможна вообще или оно будет работать неправильно. В таком случае требуется переустановка драйвера одним из нижеследующих способов. Если подходящий драйвер не найден системой, то запускается «Мастер нового оборудования», о работе которого можно прочитать в статье «Установка сетевой карты».

Читайте также:  Смартфон bq mobile space gold bq 5201

2. Мастер установки оборудования.

Поскольку система, как правило, сама обнаруживает устройства, то установка драйверов с помощью мастера установки оборудования применяется не часто. Запускать мастер установки оборудования практически может понадобиться для установки древних устройств без функции автоматического определения PnP и для обнаружения без перезагрузки устройства, которое было удалено из системы. Для запуска мастера установки оборудования нужно через меню «Пуск» открыть окно «Панель управления», найти в панели опцию «Установка оборудования» и двойным щелчком на неё запустить «Мастер установки оборудования». Работа с мастером оборудования подробно изложена тут.

3. Установка драйверов через меню компакт диска.

К каждой материнской плате и многим устройствам прилагается компакт диск, с драйверами и программным обеспечением. Для установки драйверов в этом случае достаточно вставить диск в дисковод и если работает автозапуск, то на экране дисплея появиться меню, где нужно выбрать пункт установки драйверов. Если автозапуск не срабатывает, то нужно запустить диск вручную через «Мой компьютер» или «Проводник».

4. Установка драйвера запуском файла установки.

Установку драйвера также можно запустить, щёлкнув запускаемый файл setup.exe или install.exe, который находится в папке с файлами драйвера. Часто драйвера поставляются в виде самораспаковывающегося архива в виде одного запускаемого файла. Особенно это относится к скачиваемым с интернета драйверам, где на сайте производителя устройства обычно драйвера выложены именно в таком виде. После открытия такого файла двойным щелчком происходит его распаковка во временную папку и автоматический запуск установки драйвера. В некоторых случаях происходит только распаковка, а запускать нужно самостоятельно.

5. Установка драйверов через диспетчер оборудования.

Обычно этот способ применяют, когда оборудование было обнаружено, но не установлено и отмечено в диспетчере устройств в виде знаков вопроса или устройства были установлены с ошибкой и помечены восклицательным знаком.

Как действовать в этих случаях уже упоминалось в первом пункте.

6. Установка с помощью специальных программ установки и обновления драйверов.

Существуют специальные компакт диски с пакетами и сборниками драйверов и программами для анализа системы, подбора и автоматической установки драйверов. Чаще всего это DVD диски. Поскольку в них большое количество драйверов для различных устройств, то обычно процесс поиска и установки с этих дисков происходит довольно долго, а иногда и очень долго. Есть также программы для анализа системы, подбора, поиска в интернете, установки и обновления драйверов. Я пользовался такой программой однажды. Она что-то мне неправильно определила и так криво установила, что потом с трудом удалось восстановить. С тех пор я таким средством не пользовался. Хотя вопрос конечно интересный и требует исследования.

Проблема установки драйверов возникает при установке операционной системы, а также при повреждении файлов драйверов или реестра Windows. Иногда проблемы с драйверами бывает исправить нелегко, в тех случаях, когда система или пользователь установили «неправильный» драйвер.
Далее материал будет изложен применительно к операционной системе Windows XP, хотя многое подойдёт и для Vista и Windows 7 с небольшими изменениями.

Читайте также:  Какой фильтр для воды выбрать форум

Условно установку драйверов можно разделить на шесть способов:

1. Установка драйвера на обнаруженное системой устройство.
Как известно, после установки или подключения нового устройства, Windows автоматически обнаруживает PnP устройство и пытается подобрать и установить подходящий драйвер.
Если подходящий драйвер найден, то система автоматически устанавливает его и выдаёт сообщение типа «Оборудование установлено и готово к работе».
Если устройство не обнаруживается, то нужно заглянуть в «Диспетчер устройств», чтобы убедиться что оно не обнаружено ранее и не фигурирует там под знаком вопроса или с восклицательным знаком.
Эти знаки обычно желтого цвета. Если знаки вопроса и восклицательные знаки в «Диспетчере устройств» присутствуют, то есть два варианта.
Первый – удалить это неустановленное устройство, чтобы дать системе обнаружить его вновь.
Для того чтобы система вновь обнаружила устройство нужно после его удаления в окне «Диспетчер устройств» нажать вверху кнопку «Действие» и выбрать «Обновить конфигурацию оборудования».
Второй вариант – щелкнуть по знаку вопроса или значку с восклицательным знаком и в открывшемся окне либо нажать кнопку «Переустановить» или если её нет выбрать закладку «Драйвер», а на открывшейся закладке нажать кнопку «Обновить драйвер».
В обоих случаях будет запущен «Мастер обновления оборудования».
Иногда Windows ошибается в подборе драйверов и в этом случае работа устройства невозможна вообще или оно будет работать неправильно.
В таком случае требуется переустановка драйвера одним из нижеследующих способов.
Если подходящий драйвер не найден системой, то запускается «Мастер нового оборудования».

2. Мастер установки оборудования.
Поскольку система, как правило, сама обнаруживает устройства, то установка драйверов с помощью мастера установки оборудования применяется не часто. Запускать мастер установки оборудования практически может понадобиться для установки древних устройств без функции автоматического определения PnP и для обнаружения без перезагрузки устройства, которое было удалено из системы.
Для запуска мастера установки оборудования нужно через меню «Пуск» открыть окно «Панель управления», найти в панели опцию «Установка оборудования» и двойным щелчком на неё запустить «Мастер установки оборудования».
Работа с мастером оборудования подробно изложена тут .

3. Установка драйверов через меню компакт диска.
К каждой материнской плате и многим устройствам прилагается компакт диск, с драйверами и программным обеспечением.
Для установки драйверов в этом случае достаточно вставить диск в дисковод и если работает автозапуск, то на экране дисплея появиться меню, где нужно выбрать пункт установки драйверов.
Если автозапуск не срабатывает, то нужно запустить диск вручную через «Мой компьютер» или «Проводник».

4. Установка драйвера запуском файла установки.
Установку драйвера также можно запустить, щёлкнув запускаемый файл setup.exe, run.exe или install.exe, который находится в папке с файлами драйвера. Часто драйвера поставляются в виде самораспаковывающегося архива в виде одного запускаемого файла.
Особенно это относится к загружаемым с интернета драйверам, где на сайте производителя устройства обычно драйвера выложены именно в таком виде.
После открытия такого файла двойным щелчком происходит его распаковка во временную папку и автоматический запуск установки драйвера.
В некоторых случаях происходит только распаковка, а запускать нужно самостоятельно.

5. Установка драйверов через диспетчер оборудования.
Обычно этот способ применяют, когда оборудование было обнаружено, но не установлено и отмечено в диспетчере устройств в виде знаков вопроса или устройства были установлены с ошибкой и помечены восклицательным знаком. Как действовать в этих случаях уже упоминалось в первом пункте.

6. Установка с помощью специальных программ установки и обновления драйверов.
Существуют специальные компакт диски с пакетами и сборниками драйверов и программами для анализа системы, подбора и автоматической установки драйверов. Чаще всего это DVD диски.
Поскольку в них большое количество драйверов для различных устройств, то обычно процесс поиска и установки с этих дисков происходит довольно долго, а иногда и очень долго.
Есть также программы для анализа системы, подбора, поиска в интернете, установки и обновления драйверов.
Но не факт, что драйверы установленные этой программой будут установлены правильно, поэтому я лично не рекомендовал бы этот вариант…

Ссылка на основную публикацию
Программа для восстановления поврежденных архивов
Средний рейтинг: из 38 голосов. Пожалуйста проголосуйте: Восстановление поврежденных ZIP- и RAR-файлов. Новая программа для восстановления данных найдет и восстановит...
Приложение для хром вкладка
Вкладки революционизировали веб-браузеры много лет назад, и сегодня они так же важны, когда вы работаете онлайн. Но слишком много открытых...
Приложение за покупками для андроид
4.3.1 на Андроид SMS Services LLC За покупками: Listick – Если вы тратите на посещение магазинов и совершение в них...
Программа для восстановления системы андроид
Интенсивная эксплуатация мобильного гаджета приводит к тому, что со временем его операционная система начинает «глючить». Появляются ошибки в работе тех...
Adblock detector