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


Пример конфигурации устройства и драйвера

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

На следующем рисунке показаны две возможные конфигурации оборудования для устройств клавиатуры и мыши:

  • Каждый из них напрямую подключен к системной шине

  • Подключение с помощью клавиатуры и вспомогательного контроллера устройства

схема, иллюстрирующая конфигурации оборудования клавиатуры и мыши.

На следующем рисунке показаны соответствующие многоуровневые драйверы для операций ввода-вывода на устройствах, показанных на предыдущем рисунке.

уровни драйвера клавиатуры и мыши.

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

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

Новый промежуточный драйвер, например драйвер фильтра PnP, можно добавить в конфигурацию на рисунке, иллюстрируя уровни драйвера клавиатуры и мыши. Например, драйвер фильтра, добавленный над драйвером класса клавиатуры, может фильтровать ввод с клавиатуры определенным платформой способом, прежде чем передавать его через службы ввода-вывода в подсистему, которая запросила его. Такой драйвер фильтра должен распознавать те же IRP и IOCTL, что и драйвер класса клавиатуры.