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


Установка принтера и диспетчер Plug and Play

Диспетчер Plug and Play обрабатывает все события 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 устанавливает устройства без вмешательства пользователя только в том случае, если совпадает идентификатор оборудования (rank-0). Если для драйвера Plug and Play устройства имеется совместимый идентификатор (ранг 1), но не совпадает с идентификатором оборудования, пользователю предлагается выбрать правильный драйвер на установочном носителе. (Это означает, что для установки драйвера у пользователя должен быть установочный носитель.)

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

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

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

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

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