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


Рекомендации по проектированию драйверов PnP

Plug and Play предоставляет:

  • Автоматическое и динамическое распознавание установленного оборудования

  • Выделение ресурсов оборудования (и перераспределение)

  • Загрузка соответствующих драйверов

  • Интерфейс для взаимодействия драйверов с системой PnP

  • Механизмы для изучения драйверов и приложений об изменениях в аппаратной среде

Для поддержки PnP драйвер должен следовать следующим рекомендациям:

  • Он должен содержать подпрограмму DispatchPnP .

    Эта подпрограмма диспетчеризации должна обрабатывать запросы IRP_MJ_PNP и связанные с ними вспомогательные коды функций. Дополнительные сведения см. в разделе Подпрограммы DispatchPnP.

  • Он не должен искать оборудование.

    Менеджер PnP отвечает за определение наличия аппаратных устройств. Когда диспетчер PnP обнаруживает устройство, он уведомляет драйвер, вызывая его процедуру AddDevice . Оборудование может быть обнаружено при загрузке системы или в любой момент, когда пользователь добавляет устройство в запущенную систему или удаляет его из нее.

  • Он не должен выделять аппаратные ресурсы.

    Драйвер PnP должен предоставить диспетчеру PnP списки ресурсов, которые устройство может использовать. Диспетчер PnP отвечает за назначение ресурсов каждому устройству и уведомление драйвера о назначениях каждого устройства при отправке запроса IRP_MN_START_DEVICE . Таким образом, драйвер должен быть способен работать с различными конфигурациями аппаратных ресурсов.

Некоторые драйверы изолированы от деталей PnP и управления питанием с помощью предоставляемых системой портов или драйверов класса. Например, драйвер порта SCSI изолирует драйвер мини-порта SCSI от многих деталей систем питания и PnP, поэтому драйверу минипорта SCSI не нужно напрямую обрабатывать питание и PnP IRP. Сведения о требуемой поддержке PnP см. в документации по драйверам.