HID-прослойка в современных драйверах управления периферийными устройствами работает следующим образом:
HID-драйвер представляет собой программный модуль, который обеспечивает взаимодействие между HID-менеджером и HID-устройствами. 1 Драйвер принимает на себя задачу интерпретации данных, поступающих от HID-устройства, для их правильного восприятия HID-менеджером. 1
Это подразумевает не только определение стандартных действий пользователя (клик мыши, нажатие клавиши на клавиатуре), но и предоставление удобного интерфейса для управления HID-устройством. 1 HID-драйвер напрямую «общается» с устройством, что позволяет быстро реагировать на контакт пользователя с устройством ввода. 1
Для доступа к аппаратному устройству ввода драйвер класса HID использует минидрайверы HID. 2 Минидрайвер абстрагирует специфическую для устройства работу поддерживаемых им устройств ввода. 2 Он привязывает свою работу к драйверу класса HID, зарегистрировавшись с ним. 2 Драйвер класса HID связывается с минидрайвером, вызывая подпрограммы поддержки минидрайвера. 2 Минидрайвер, в свою очередь, отправляет сообщения вниз по стеку драйверов к базовому драйверу шины или порта. 2
Например, в случае с устройствами, поддерживающими HID по транспорту SPI, Windows предоставляет мини-порт HID на основе KMDF-драйвера, реализующего спецификацию протокола 1.0 для HID через SPI. 3 Этот драйвер называется HIDSPI.sys и обеспечивает совместимость программного обеспечения и приложений, использующих HID IOCTLs и набор API. 3