Hid button over interrupt driver что это

Обновлено: 03.07.2024

Use the Microsoft-provided button driver for GPIO buttons; otherwise, implement your driver that injects HID data to the operating system.

Buttons (Power, Windows, volume and rotation lock) are typically used for tasks that occur while the physical keyboard is not available to the user, on form factors such as convertibles or slates. Buttons declare themselves to the operating system as HID devices by supplying HID button report descriptors. This allows the system to interpret the purpose and events of those buttons in a standardized way. When a button state changes, that event is mapped to a HID Usages. A HID transport minidriver reports those events to upper-level drivers that then send details to HID clients in user mode or kernel mode.

For physical general-purpose I/O (GPIO) buttons, the HID transport minidriver is a Microsoft-provided in-box driver that reports the events based on the interrupts that are received on the defined GPIO hardware resources.

The in-box driver cannot service a button that is not wired to an interrupt line. For such buttons, you need to write a driver that exposes the button as a HID button and reports state changes to the HID class driver (Microsoft-provided). Your driver could be a HID source driver or a HID transport driver.

Sample ACPI button device for Windows 10 Core OS editions

Example for describing buttons in ACPI Source Language (ASL) for device running Windows 10 Core OS.

ACPI button device

The generic button device is a standard device for reporting button events through hardware interrupts, and mapping those interrupts to specific usages defined in the Human Interface Device (HID) specification.

In order to express the functionality of a button to the operating system, two pieces of information are required:

  • Usage of the HID Control
  • Usage of the HID Collection in which the Control belongs

A Usage is a combination of a Usage Page and Usage ID. For example, the Volume Up button is identified as the Volume Up Usage (Usage Page 0x0C, Usage Id 0xE9) in the Consumer Control Collection (Usage Page 0x0C, Usage Id 0x01).

ACPI device Id of a generic button device is ACPI0011. Windows loads the Microsoft-provided in-box driver, Hidinterrupt.sys for that device.

For more information about the generic button device, visit the Unified Extensible Firmware Interface specifications web site, and download the ACPI Specification Version 6.0 PDF document. Then use the left-hand pane to navigate to Section 9.19.

Guidance for supporting HID buttons

Here are some general pointers to help you decide which implementation you should follow if you are creating HID buttons.

Use the Microsoft-provided in-box button driver

ACPI description of a HID button.

If you are implementing a GPIO button, describe the button in the system ACPI so that Windows can load the in-box driver, Hidinterrupt.sys, as the button driver that reports events to the operating system.

Microsoft encourages you to use the in-box transport-minidrivers whenever possible.

Write a HID source driver in kernel mode

Buttons using Virtual HID Framework.

If you are implementing a non-GPIO button such as a stream of data in the HID format that needs to be injected by another software component, you can choose to write a kernel-mode driver. Starting in Windows 10, you can write a HID source driver by calling programming interfaces that communicate with Virtual HID Framework (VHF) and gets and sets HID Reports to and from the HID class driver.

Alternately, you can write a kernel-mode HID transport minidriver as supported by the earlier versions of Windows. However, we do not recommend this approach because poorly written KMDF HID transport minidrivers can crash the system.

Write a UMDF HID Minidriver

HID Transport Minidriver.

If you are implementing a non-GPIO button, instead of using preceding model of writing a HID source driver, you can write a HID transport minidriver in user mode. These drivers are easier to develop than kernel-mode drivers and errors in this driver do not bug check the whole system.

HID button drivers

Use the Microsoft-provided button driver for GPIO buttons; otherwise, implement your driver that injects HID data to the operating system.

Buttons (Power, Windows, volume and rotation lock) are typically used for tasks that occur while the physical keyboard is not available to the user, on form factors such as convertibles or slates. Buttons declare themselves to the operating system as HID devices by supplying HID button report descriptors. This allows the system to interpret the purpose and events of those buttons in a standardized way. When a button state changes, that event is mapped to a HID Usages. A HID transport minidriver reports those events to upper-level drivers that then send details to HID clients in user mode or kernel mode.

For physical general-purpose I/O (GPIO) buttons, the HID transport minidriver is a Microsoft-provided in-box driver that reports the events based on the interrupts that are received on the defined GPIO hardware resources.

The in-box driver cannot service a button that is not wired to an interrupt line. For such buttons, you need to write a driver that exposes the button as a HID button and reports state changes to the HID class driver (Microsoft-provided). Your driver could be a HID source driver or a HID transport driver.

HID Проблемы с клавиатурой

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

Universal Windows drivers for HID buttons

Starting with Windows 10, the HID driver programming interfaces are part of OneCoreUAP-based editions of Windows. By using that common set of interfaces, you can write a button driver by using Virtual HID Framework or Transport Minidrivers interfaces. Those drivers will run on both Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) and Windows 10 Mobile, as well as other Windows 10 versions.

Sample buttons in ACPI for device running Windows 10 desktop editions

Example for describing buttons in ACPI Source Language (ASL) for device running Windows 10 desktop editions (Home, Pro, Enterprise, and Education).

Исправления: клавиатура не работает

Большинство вышеупомянутых проблем можно решить, просто обновив или переустановив драйверы, как показано в предыдущем разделе. Но если проблема с вашей клавиатурой не устранена, вы также можете взглянуть на следующее:

Убедитесь, что порт USB работает

  • Неисправная клавиатура.
  • Неисправный кабель.
  • Неисправный порт USB.

Чтобы проверить, работает ли порт USB, отключите клавиатуру HID и подключите другое устройство USB, например флэш-накопитель или мышь. Если он тоже не распознается, у вас проблема с оборудованием. Помимо исправления базовой инфраструктуры, вам также следует обойти любые USB-концентраторы, которые вы можете использовать, и подключить клавиатуру напрямую к ПК.

Конфликт обновления драйвера Windows 10

Некоторые пользователи сообщают о любопытной проблеме при перезагрузке Windows 10. Функциональная клавиатура перестает работать, как только драйверы устройства обновляются автоматически с помощью обновления Windows.

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

Отключить ключи фильтра

Лучше оставить ключи фильтров выключенными. Чтобы в этом убедиться, нажмите Win + I и откройте «Настройки». Щелкните «Удобство доступа».


Прокрутите вниз и выберите «Клавиатура» на левой панели.


Теперь справа в разделе «Использовать ключи фильтра» выключите кнопку и снимите флажок «Разрешить ярлыку запускать ключи файлов».


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

Мы надеемся, что теперь вы стали лучше осведомлены о HID-клавиатурах и обновлении их дисков, чем раньше. Выполнение этого несколькими различными способами также гарантирует, что вы избежите любых проблем, которые в противном случае могли бы беспокоить вашу клавиатуру.

Universal Windows drivers for HID buttons

Starting with Windows 10, the HID driver programming interfaces are part of OneCoreUAP-based editions of Windows. By using that common set of interfaces, you can write a button driver by using Virtual HID Framework or Transport Minidrivers interfaces. Those drivers will run on both Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) and Windows 10 Mobile, as well as other Windows 10 versions.

Что такое HID Keyboard Device? Как установить драйверы HID-клавиатуры

Установите драйверы HID Keyboard

Если вы недавно обновились до Windows 10, переустановили или обновили ее, возможно, вы обнаружили, что вам необходимо установить (или обновить) драйверы HID Keyboard.

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

Вот несколько способов обновить и переустановить драйверы клавиатуры и решить проблемы, с которыми вы можете столкнуться.

Чтобы установить / обновить драйверы клавиатуры, откройте RUN, нажав Winkey + R, введите «devmgmt.msc» и нажмите Enter.


В диспетчере устройств разверните ветку Клавиатуры.


Затем щелкните правой кнопкой мыши на клавиатуре и выберите «Обновить драйвер».


Выберите Автоматический поиск драйверов.


Драйверы будут установлены / обновлены автоматически. Перезагрузите компьютер, чтобы изменения вступили в силу.

Вы также можете просмотреть (свой) компьютер в поисках драйверов, если вы уже загрузили драйверы с вашего компьютера или веб-сайта производителя клавиатуры.


Нажмите «Обзор», найдите папку с файлом драйвера и нажмите «Далее».


Кроме того, вы можете нажать «Разрешить мне выбрать» из списка доступных драйверов на моем компьютере и посмотреть, какие предложения Windows предлагает вам.


Затем выберите один из предложенных вариантов и нажмите «Далее».


Если вы не можете найти вариант, снимите флажок «Показать совместимое оборудование» и получите полный список драйверов от разных производителей на выбор. Затем нажмите Далее.


Необходимо обновить драйверы клавиатуры. Перезагрузите компьютер, чтобы изменения вступили в силу.


Откройте диспетчер устройств, как показано ранее (Win + X). Вы также можете использовать для этого только мышь: щелкните правой кнопкой мыши кнопку «Пуск» и выберите «Диспетчер устройств».


Затем щелкните правой кнопкой мыши на клавиатуре в ветви «Клавиатуры» и выберите «Удалить устройство».


Снова нажмите Удалить.


Выберите Да и перезагрузите компьютер, чтобы удалить.


После перезапуска Windows автоматически установит драйверы клавиатуры по умолчанию и снова заставит клавиатуру работать.

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

Guidance for supporting HID buttons

Here are some general pointers to help you decide which implementation you should follow if you are creating HID buttons.

Use the Microsoft-provided in-box button driver

ACPI description of a HID button.

If you are implementing a GPIO button, describe the button in the system ACPI so that Windows can load the in-box driver, Hidinterrupt.sys, as the button driver that reports events to the operating system.

Microsoft encourages you to use the in-box transport-minidrivers whenever possible.

Write a HID source driver in kernel mode

Buttons using Virtual HID Framework.

If you are implementing a non-GPIO button such as a stream of data in the HID format that needs to be injected by another software component, you can choose to write a kernel-mode driver. Starting in Windows 10, you can write a HID source driver by calling programming interfaces that communicate with Virtual HID Framework (VHF) and gets and sets HID Reports to and from the HID class driver.

Alternately, you can write a kernel-mode HID transport minidriver as supported by the earlier versions of Windows. However, we do not recommend this approach because poorly written KMDF HID transport minidrivers can crash the system.

Write a UMDF HID Minidriver

HID Transport Minidriver.

If you are implementing a non-GPIO button, instead of using preceding model of writing a HID source driver, you can write a HID transport minidriver in user mode. These drivers are easier to develop than kernel-mode drivers and errors in this driver do not bug check the whole system.

Читайте также: