Поддержка аппаратных уведомлений

применимо к

  • Разработчики драйверов и изготовители оборудования

Основные API

Windows 10 версии 1709 предоставляет инфраструктуру для независимой от аппаратного обеспечения поддержки компонентов уведомлений, таких как светодиоды и механизмы вибрации. Эта поддержка предоставляется путем внедрения расширения класса Kernel-Mode Driver Framework (KMDF) специально для компонентов уведомлений оборудования, позволяющих быстро разрабатывать клиентские драйверы. Расширение класса KMDF — это, по сути, драйвер KMDF, который предоставляет определенный набор функциональных возможностей для определенного класса устройств, аналогичный драйверу порта в модели драйверов Windows (WDM). В этом разделе представлен обзор архитектуры расширения класса уведомлений оборудования. Дополнительные сведения о KMDF см. в статье Об использовании WDF для разработки драйвера.

Расширение класса уведомлений оборудования

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

  • Регистрация клиентских драйверов
  • Выделение и очистка системных ресурсов
  • Регистрация функций обратного вызова PnP для клиентских драйверов
  • Регистрация очередей ввода-вывода для клиентских драйверов
  • Проверка данных и проверка ошибок
  • Передача аппаратных запросов к драйверу клиента

На следующей схеме показана базовая архитектура расширения класса уведомлений оборудования.

Архитектура hwn clx.

Драйвер клиента уведомления оборудования

Клиентские драйверы можно легко создавать для компонентов аппаратного уведомления с помощью расширения класса уведомлений оборудования. Единственной обязанностью драйвера клиента является предоставление соответствующих точек входа для KMDF, реализация функций обратного вызова, определённых расширением класса, управление режимами энергопотребления и управление физическим оборудованием. В частности, клиентский драйвер должен реализовать функции DriverEntry и EVT_WDF_DRIVER_DEVICE_ADD для использования Windows Driver Foundation (WDF), а также необходимые функции для расширения класса.

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

архитектура драйвера клиента.