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


GpioClx DDI

Драйвер контроллера ввода-вывода общего назначения (GPIO) взаимодействует с расширением платформы GPIO (GpioClx) через интерфейс драйвера устройств GpioClx (DDI). Этот DDI определен в файле заголовка Gpioclx.h и описан в General-Purpose контроллерах ввода-вывода (GPIO). В рамках этого DDI GpioClx реализует несколько методов поддержки драйверов, которые вызываются драйвером контроллера GPIO. Этот драйвер реализует набор функций обратного вызова событий, которые вызываются GpioClx. GpioClx использует эти обратные вызовы для управления запросами прерываний от контактов GPIO, настроенных как входы прерываний, а также для передачи данных к или от контактов GPIO, настроенных в качестве входов и выходов данных.

В этом разделе

Тема Описание

Методы поддержки драйверов в DDI GpioClx

Расширение платформы GPIO (GpioClx) доступно начиная с Windows 8. Системные методы в DDI GpioClx реализуются в драйвере режима ядра GpioClx Msgpioclx.sys. Этот драйвер экспортирует точки входа для методов поддержки драйвера GpioClx. Начиная с Windows 8, Msgpioclx.sys является стандартным компонентом операционной системы.

Необязательные и обязательные функции обратного вызова GPIO

Драйвер контроллера ввода-вывода общего назначения (GPIO) вызывает метод GPIO_CLX_RegisterClient для регистрации в качестве клиента расширения платформы GPIO (GpioClx). Во время этого вызова драйвер передает пакет регистрации в GpioClx, который указывает список функций обратного вызова событий, реализованных драйвером. GpioClx вызывает эти функции обратного вызова для настройки оборудования контроллера GPIO, выполнения операций ввода-вывода и управления прерываниями. GpioClx требует драйвер контроллера GPIO для реализации некоторых функций обратного вызова, но поддержка других функций обратного вызова является необязательной.

Контексты устройств GPIO

Устройство контроллера ввода-вывода общего назначения (GPIO) представлено объектом устройства платформы. Драйвер контроллера GPIO может связать контекст устройства с этим объектом устройства. Драйвер использует этот контекст устройства для постоянного хранения сведений о состоянии устройства контроллера GPIO.

Секционирование контроллера GPIO на банки пин-кодов

Разработчик драйвера может, при желании, разделить устройство контроллера ввода-вывода общего назначения (GPIO) на два или более банков GPIO. Например, устройство контроллера GPIO с 64 контактами GPIO можно описать драйвером контроллера GPIO как две группы, каждая из которых имеет 32 контакта GPIO.

Проблемы реализации драйверов контроллера GPIO

Расширение платформы GPIO (GpioClx) предоставляет гибкий интерфейс драйвера устройств (DDI). Этот DDI позволяет разработчикам выбирать альтернативные интерфейсы обратного вызова. Разработчик драйвера должен реализовать набор функций обратного вызова событий, которые лучше всего подходят для аппаратной архитектуры целевого устройства контроллера GPIO.