Контроллеры ввода-вывода общего назначения (GPIO)

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

Основные сведения о написании клиентских драйверов GPIOClx см. в статье Руководство по проектированию драйверов для операций ввода-вывода общего назначения (GPIO).

Функции IOCTL

 
IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION

Код IOCTL_GPIO_CONTROLLER_SPECIFIC_FUNCTION управления вводом-выводом позволяет клиенту контроллера ввода-вывода общего назначения (GPIO) запрашивать операцию управления устройством для конкретного контроллера.
IOCTL_GPIO_READ_PINS

Код элемента управления IOCTL_GPIO_READ_PINS ввода-вывода позволяет клиенту контроллера ввода-вывода общего назначения (GPIO) считывать данные из набора контактов GPIO, настроенных в качестве входных данных.
IOCTL_GPIO_WRITE_PINS

Код элемента управления IOCTL_GPIO_WRITE_PINS ввода-вывода позволяет клиенту контроллера ввода-вывода общего назначения (GPIO) выполнять запись в набор контактов GPIO, настроенных в качестве выходных данных.

Перечисления

 
CLIENT_CONTROLLER_QUERY_SET_REQUEST_TYPE

Тип перечисления CLIENT_CONTROLLER_QUERY_SET_REQUEST_TYPE указывает, какой тип сведений об атрибутах запрашивает расширение платформы GPIO (GpioClx) из драйвера контроллера GPIO.
GPIO_CONNECT_IO_PINS_MODE

Перечисление GPIO_CONNECT_IO_PINS_MODE указывает, настроен ли набор контактов ввода-вывода общего назначения (GPIO) в качестве входных или выходных данных.

Функции

 
GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS

Функция обратного вызова события CLIENT_ClearActiveInterrupts очищает активные прерывания в наборе контактов ввода-вывода общего назначения (GPIO), настроенных в качестве входных данных прерывания.
GPIO_CLIENT_CONNECT_IO_PINS

Функция обратного вызова события CLIENT_ConnectIoPins открывает логическое соединение с набором контактов ввода-вывода общего назначения (GPIO) и настраивает эти контакты для операций чтения и записи данных.
GPIO_CLIENT_CONTROLLER_SPECIFIC_FUNCTION

Функция обратного вызова события CLIENT_ControllerSpecificFunction выполняет операцию, которая относится к конкретному контроллеру ввода-вывода общего назначения (GPIO).
GPIO_CLIENT_DISABLE_INTERRUPT

Функция обратного вызова события CLIENT_DisableInterrupt отключает прерывания в контакте ввода-вывода общего назначения (GPIO), настроенном в качестве входных данных прерывания.
GPIO_CLIENT_DISCONNECT_IO_PINS

Функция обратного вызова события CLIENT_DisconnectIoPins закрывает логическое соединение с набором контактов ввода-вывода общего назначения (GPIO), настроенных для операций чтения или записи данных.
GPIO_CLIENT_ENABLE_INTERRUPT

Функция обратного вызова события CLIENT_EnableInterrupt включает прерывания в контакте ввода-вывода общего назначения (GPIO), настроенном в качестве входных данных прерываний.
GPIO_CLIENT_MASK_INTERRUPTS

Функция обратного вызова события CLIENT_MaskInterrupts маскирует прерывания в наборе контактов ввода-вывода общего назначения (GPIO), настроенных в качестве входных данных прерывания.
GPIO_CLIENT_PRE_PROCESS_CONTROLLER_INTERRUPT

Функция обратного вызова события CLIENT_PreProcessControllerInterrupt выполняет любую предварительную обработку прерывания ввода-вывода общего назначения (GPIO), которое должно быть выполнено немедленно, если ISR планируется запустить позже.
GPIO_CLIENT_PREPARE_CONTROLLER

Функция обратного вызова события CLIENT_PrepareController выполняет все операции, необходимые для подготовки контроллера ввода-вывода общего назначения (GPIO) к доступу с помощью драйвера контроллера GPIO.
GPIO_CLIENT_QUERY_ACTIVE_INTERRUPTS

Функция обратного вызова события CLIENT_QueryActiveInterrupts запрашивает состояние набора контактов ввода-вывода общего назначения (GPIO), настроенных в качестве входных данных прерывания.
GPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION

Функция обратного вызова события CLIENT_QueryControllerBasicInformation извлекает аппаратные атрибуты контроллера ввода-вывода общего назначения (GPIO).
GPIO_CLIENT_QUERY_ENABLED_INTERRUPTS

Функция обратного вызова события CLIENT_QueryEnabledInterrupts запрашивает состояние набора контактов ввода-вывода общего назначения (GPIO), чтобы определить, какие контакты настроены как входные данные прерывания и включены для прерываний.
GPIO_CLIENT_QUERY_SET_CONTROLLER_INFORMATION

Функция обратного вызова события CLIENT_QuerySetControllerInformation запрашивает драйвер контроллера ввода-вывода общего назначения (GPIO) для указанного набора атрибутов контроллера GPIO.
GPIO_CLIENT_READ_PINS

Функция обратного вызова события CLIENT_ReadGpioPins считывает набор контактов ввода-вывода общего назначения (GPIO), настроенных в качестве входных данных.
GPIO_CLIENT_READ_PINS_MASK

Функция обратного вызова события CLIENT_ReadGpioPinsUsingMask считывает банк контактов ввода-вывода общего назначения (GPIO).
GPIO_CLIENT_RECONFIGURE_INTERRUPT

Функция обратного вызова события CLIENT_ReconfigureInterrupt перенастраивает контакт ввода-вывода общего назначения (GPIO), который используется в качестве входных данных прерывания.
GPIO_CLIENT_RELEASE_CONTROLLER

Функция обратного вызова события CLIENT_ReleaseController выполняет операции, необходимые, когда устройство контроллера ввода-вывода общего назначения (GPIO) больше не доступно.
GPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT

Функция обратного вызова события CLIENT_RestoreBankHardwareContext восстанавливает аппаратный контекст банка контактов ввода-вывода общего назначения (GPIO).
GPIO_CLIENT_SAVE_BANK_HARDWARE_CONTEXT

Функция обратного вызова события CLIENT_SaveBankHardwareContext сохраняет аппаратный контекст банка контактов ввода-вывода общего назначения (GPIO).
GPIO_CLIENT_START_CONTROLLER

Функция обратного вызова события CLIENT_StartController выполняет операции, необходимые, когда устройство контроллера ввода-вывода общего назначения (GPIO) переходит в состояние питания D0.
GPIO_CLIENT_STOP_CONTROLLER

Функция обратного вызова события CLIENT_StopController выполняет операции, необходимые для подготовки устройства контроллера ввода-вывода общего назначения (GPIO) к выходу из состояния питания D0.
GPIO_CLIENT_UNMASK_INTERRUPT

Функция обратного вызова события CLIENT_UnmaskInterrupt расмаскивает прерывание в контакте ввода-вывода общего назначения (GPIO), настроенном в качестве входных данных прерывания.
GPIO_CLIENT_WRITE_PINS

Функция обратного вызова события CLIENT_WriteGpioPins выполняет запись в набор контактов ввода-вывода общего назначения (GPIO), настроенных в качестве выходных данных.
GPIO_CLIENT_WRITE_PINS_MASK

Функция обратного вызова события CLIENT_WriteGpioPinsUsingMask выполняет запись в набор контактов ввода-вывода общего назначения (GPIO), настроенных в качестве выходных данных.
GPIO_CLX_AcquireInterruptLock

Метод GPIO_CLX_AcquireInterruptLock получает блокировку прерывания на банке контактов в контроллере ввода-вывода общего назначения (GPIO).
GPIO_CLX_ProcessAddDevicePostDeviceCreate

Метод GPIO_CLX_ProcessAddDevicePostDeviceCreate передает объект устройства платформы в расширение платформы GPIO (GpioClx).
GPIO_CLX_ProcessAddDevicePreDeviceCreate

Метод GPIO_CLX_ProcessAddDevicePreDeviceCreate загружает сведения об инициализации в две структуры, которые передаются в качестве входных параметров методу WdfDeviceCreate.
GPIO_CLX_RegisterClient

Метод GPIO_CLX_RegisterClient регистрирует драйвер контроллера GPIO в качестве клиента расширения платформы GPIO (GpioClx).
GPIO_CLX_ReleaseInterruptLock

Метод GPIO_CLX_ReleaseInterruptLock снимает блокировку прерываний в указанном банке.
GPIO_CLX_UnregisterClient

Метод GPIO_CLX_UnregisterClient удаляет регистрацию драйвера контроллера GPIO с расширением платформы GPIO (GpioClx).

Структуры

 
CLIENT_CONTROLLER_BASIC_INFORMATION

Структура CLIENT_CONTROLLER_BASIC_INFORMATION содержит аппаратные атрибуты контроллера ввода-вывода общего назначения (GPIO) и сведения о конфигурации.
CLIENT_CONTROLLER_QUERY_SET_INFORMATION_INPUT

Структура CLIENT_CONTROLLER_QUERY_SET_INFORMATION_INPUT содержит запрос атрибутов оборудования контроллера ввода-вывода общего назначения (GPIO).
CLIENT_CONTROLLER_QUERY_SET_INFORMATION_OUTPUT

Структура CLIENT_CONTROLLER_QUERY_SET_INFORMATION_OUTPUT содержит набор атрибутов контроллера ввода-вывода общего назначения (GPIO), запрошенных расширением платформы GPIO (GpioClx).
CLIENT_QUERY_BANK_POWER_INFORMATION_OUTPUT

Структура CLIENT_QUERY_BANK_POWER_INFORMATION_OUTPUT содержит сведения о возможностях управления питанием банка контактов ввода-вывода общего назначения (GPIO).
CONTROLLER_ATTRIBUTE_FLAGS

Структура CONTROLLER_ATTRIBUTE_FLAGS описывает аппаратные атрибуты устройства контроллера ввода-вывода общего назначения (GPIO).
GPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS

Структура GPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS описывает набор контактов прерываний ввода-вывода общего назначения (GPIO) для очистки.
GPIO_CLIENT_CONTROLLER_SPECIFIC_FUNCTION_PARAMETERS

Структура GPIO_CLIENT_CONTROLLER_SPECIFIC_FUNCTION_PARAMETERS описывает входные и выходные буферы для конкретной операции контроллера.
GPIO_CLIENT_REGISTRATION_PACKET

Структура GPIO_CLIENT_REGISTRATION_PACKET содержит сведения о регистрации, которые драйвер контроллера GPIO передает в расширение платформы GPIO (GpioClx).
GPIO_CONNECT_IO_PINS_PARAMETERS

Структура GPIO_CONNECT_IO_PINS_PARAMETERS описывает логическое подключение к набору контактов ввода-вывода общего назначения (GPIO) и указывает, следует ли настроить эти контакты в качестве входных или выходных данных.
GPIO_DISABLE_INTERRUPT_PARAMETERS

Структура GPIO_DISABLE_INTERRUPT_PARAMETERS описывает контакт прерывания ввода-вывода общего назначения (GPIO) для отключения.
GPIO_DISCONNECT_IO_PINS_PARAMETERS

Структура GPIO_DISCONNECT_IO_PINS_PARAMETERS описывает набор контактов ввода-вывода общего назначения (GPIO), которые должны быть отключены.
GPIO_ENABLE_INTERRUPT_PARAMETERS

Структура GPIO_ENABLE_INTERRUPT_PARAMETERS указывает контакт ввода-вывода общего назначения (GPIO) и описывает атрибуты прерывания этого контакта.
GPIO_MASK_INTERRUPT_PARAMETERS

Структура GPIO_MASK_INTERRUPT_PARAMETERS описывает набор контактов прерываний ввода-вывода общего назначения (GPIO) для маскирования.
GPIO_QUERY_ACTIVE_INTERRUPTS_PARAMETERS

Структура GPIO_QUERY_ACTIVE_INTERRUPTS_PARAMETERS описывает набор контактов прерываний ввода-вывода общего назначения (GPIO) для запроса их включенных и активных состояний.
GPIO_QUERY_ENABLED_INTERRUPTS_PARAMETERS

Структура GPIO_QUERY_ENABLED_INTERRUPTS_PARAMETERS указывает, какие контакты прерываний в банке контактов ввода-вывода общего назначения (GPIO) включены.
GPIO_READ_PINS_MASK_PARAMETERS

Структура GPIO_READ_PINS_MASK_PARAMETERS описывает операцию чтения в банке контактов ввода-вывода общего назначения (GPIO).
GPIO_READ_PINS_PARAMETERS

Структура GPIO_READ_PINS_PARAMETERS описывает операцию чтения в группе контактов ввода-вывода общего назначения (GPIO).
GPIO_RECONFIGURE_INTERRUPTS_PARAMETERS

Структура GPIO_RECONFIGURE_INTERRUPTS_PARAMETERS описывает контакт прерывания ввода-вывода общего назначения (GPIO) для перенастройки.
GPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS

Структура GPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS описывает банк контактов ввода-вывода общего назначения (GPIO), состояние оборудования которых требуется сохранить или восстановить.
GPIO_WRITE_PINS_MASK_PARAMETERS

Структура GPIO_WRITE_PINS_MASK_PARAMETERS описывает операцию записи в банке контактов ввода-вывода общего назначения (GPIO).
GPIO_WRITE_PINS_PARAMETERS

Структура GPIO_WRITE_PINS_PARAMETERS описывает операцию записи в группе контактов ввода-вывода общего назначения (GPIO).