Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте драйвер кнопки, предоставленный Корпорацией Майкрософт, для кнопок GPIO; в противном случае реализуйте драйвер, который внедряет данные HID в операционную систему.
Кнопки (Power, Windows, громкость и блокировка поворота) обычно используются для задач, возникающих в то время как физическая клавиатура недоступна пользователю, в форм-факторах, таких как преобразуемые или slates. Кнопки объявляют себя операционной системе как устройства HID, предоставляя дескрипторы отчетов о кнопках HID. Это позволяет системе интерпретировать назначение и события этих кнопок стандартизированным образом. При изменении состояния кнопки это событие сопоставляется с использованием HID. Мини-driver транспорта HID сообщает об этих событиях драйверам верхнего уровня, которые затем отправляют сведения клиентам HID в режиме пользователя или в режиме ядра.
Для кнопок ввода-вывода (GPIO) физического общего назначения мини-накопитель HID — это встроенный драйвер, предоставляемый корпорацией Майкрософт, который сообщает о событиях на основе прерываний, полученных на определенных аппаратных ресурсах GPIO.
Драйвер в коробке не может обслуживать кнопку, которая не подключена к строке прерывания. Для таких кнопок необходимо написать драйвер, который предоставляет кнопку в виде кнопки HID и сообщает о изменении состояния драйвера класса HID (майкрософт). Ваш водитель может быть драйвером источника HID или драйвером транспорта HID.
Руководство по поддержке кнопок HID
Ниже приведены некоторые общие указатели, которые помогут вам решить, какую реализацию следует следовать, если вы создаете кнопки HID.
Использование драйвера кнопки, предоставленного корпорацией Майкрософт
Если вы реализуете кнопку GPIO, опишите кнопку в системе ACPI, чтобы Windows могли загрузить встроенный драйвер Hidinterrupt.sys в качестве драйвера кнопки, который сообщает о событиях в операционной системе.
Корпорация Майкрософт рекомендует использовать встроенные мини-накопители по возможности.
Запись драйвера источника HID в режиме ядра
Если вы реализуете кнопку без GPIO, например поток данных в формате HID, который необходимо внедрить другим программным компонентом, можно написать драйвер в режиме ядра. Начиная с Windows 10, вы можете написать исходный драйвер HID, вызвав интерфейсы программирования, взаимодействующие с Virtual HID Framework (VHF), и получает и задает отчеты HID в драйвер класса HID и из драйвера класса HID.
- Как написать исходный драйвер HID, взаимодействующий с Virtual HID Framework (VHF)
- Справочник по виртуальной платформе HID
Кроме того, можно написать мини-накопитель транспорта HID в режиме ядра, поддерживаемый более ранними версиями Windows. Однако мы не рекомендуем этот подход, так как плохо написанные мини-накопители транспорта KMDF HID могут завершить работу системы.
Создание мини-driver UMDF HID
Если вы реализуете кнопку, отличной от GPIO, вместо того чтобы использовать предыдущую модель написания исходного драйвера HID, вы можете написать мини-накопитель транспорта HID в пользовательском режиме. Эти драйверы проще разрабатывать, чем драйверы в режиме ядра и ошибки в этом драйвере, не проверяют всю систему.
Универсальные драйверы Windows для кнопок HID
Начиная с Windows 10, интерфейсы программирования драйвера HID являются частью выпусков Windows на основе OneCoreUAP. С помощью этого общего набора интерфейсов можно написать драйвер кнопки с помощью интерфейсов Virtual HID Framework или Transport Minidrivers . Эти драйверы будут работать в Windows 10 для классических выпусков (Home, Pro, Enterprise и Education) и Windows 10 Mobile, а также других версий Windows 10.
Пошаговые инструкции см. в разделе "Использование универсального INF-файла".