Поделиться через


Установка принтера и диспетчер самонастраивающийся

Диспетчер Plug and Play обрабатывает все события Plug and Play для компьютера и является универсальным для всех устройств. Менеджер Plug and Play задокументирован в Plug and Play. Общие сведения об установке Plug and Play и о том, как взаимодействуют различные компоненты в режиме ядра и пользовательском режиме.

Различия в установке принтера между Windows 98/Me и Windows 2000 и более поздними версиями

Архитектура Plug and Play в Windows 2000 и более поздних версиях отличается от архитектуры Windows 95/98/Me. Наиболее значительными отличиями являются:

  • Драйверы, включенные в Windows 2000 и более поздних версий, содержатся в файле driver.cab, который устанавливается при установке операционной системы. Этот файл содержит все встроенные драйверы Plug and Play для всех типов устройств, поэтому пользователю обычно не нужен исходный носитель установки для установки драйвера.

  • Для установки определенного драйвера требуется мало или нет вмешательства пользователя. Если драйвер Windows 2000 или более поздней версии, подписанный корпорацией Майкрософт, находится в driver.cab или уже установлен на компьютере, Plug and Play проверяет подпись драйвера и устанавливает драйвер без вмешательства пользователя. Этот тип установки называется серверной установкой. Если драйвер недоступен в системе, или если он не подписан, или если установка драйвера требует взаимодействия с пользователем (через элементы пользовательского интерфейса), система Plug and Play переходит к установке на стороне клиента. В большинстве случаев при загрузке компьютера с новым устройством Plug and Play, подключенным к нему, устройство устанавливается и готово к использованию по времени входа пользователя.

Если пользователь должен иметь возможность выбрать драйвер для установки, можно использовать директиву InteractiveInstall в разделе INF ControlFlags. Эта директива может использоваться только в следующих двух случаях:

  1. Для установки устройств, у которых неправильно определены идентификаторы оборудования. Это может произойти, если аппаратное устройство имеет поврежденный идентификатор оборудования или когда поставщик оборудования назначает один и тот же идентификатор оборудования двум разным устройствам, что является ошибкой в проектировании оборудования.

  2. Установка драйвера для устройства, которое не может использовать установщик универсального класса или драйвер, предоставленный операционной системой.

Если идентификаторы оборудования или совместимые идентификаторы перечислены с помощью директивы InteractiveInstall, программа установки отложит установку принтеров, соответствующих этим идентификаторам на стороне клиента, поэтому установка задерживается до тех пор, пока администратор не войтится в систему. Администратору будет предложено установить правильные файлы драйверов. Это полезно, если два драйвера принтера используют один и тот же идентификатор устройства, но требуют разных драйверов.

В отличие от Windows 2000 и более поздних версий, Windows 95/98/Me Plug and Play устанавливает устройства без вмешательства пользователя только в случае совпадения с идентификатором оборудования (ранг-0). Если имеется совместимый идентификатор (совпадение первого ранга) для драйвера устройства Plug and Play, но нет совпадения с идентификатором оборудования, пользователю будет предложено выбрать правильный драйвер из установочного носителя. (Это означает, что у пользователя должен быть установочный носитель для установки драйвера.)

Кроме того, в Windows 95/98/Me, если драйвер написан для нескольких устройств (или для аналогичных устройств на нескольких шинах), пользователя всегда запрашивают установить, если указан только совместимый идентификатор, если только каждый возможный идентификатор оборудования не указан с дублирующей записью драйвера в INF-файле.

Обнаружение дублирующихся установок

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

Ряд популярных моделей принтеров используют один и тот же идентификатор оборудования (например, серия HP DeskJet). В Windows 95/98/Me, если пользователь вручную устанавливает модель DeskJet, которая впоследствии обнаружена Plug and Play, то вторая очередь печати устанавливается, если пользователь выбирает соответствующий драйвер. Если пользователь не выбирает драйвер, им будет предложено сделать это каждый раз, когда компьютер перезагружается.

Windows 2000 и более поздние версии избегают этого поведения, перечисляя все принтеры с совпадающим ID оборудования и совместимым ID. При обнаружении нескольких совпадений установщик класса проверяет наличие очереди печати с одинаковым идентификатором оборудования. Если есть, диспетчер Plug and Play не устанавливает вторую очередь. В противном случае соответствие идентификатора оборудования будет понижено до соответствия совместимого идентификатора. Если эти аппаратные идентификаторы также перечислены в записи InteractiveInstall (см. раздел INF ControlFlags) INF-файла, пользователю будет предложено выбрать драйвер.