структура GPIO_ENABLE_INTERRUPT_PARAMETERS (gpioclx.h)

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

Синтаксис

typedef struct _GPIO_ENABLE_INTERRUPT_PARAMETERS {
  BANK_ID                     BankId;
  PIN_NUMBER                  PinNumber;
  GPIO_ENABLE_INTERRUPT_FLAGS Flags;
  KINTERRUPT_MODE             InterruptMode;
  KINTERRUPT_POLARITY         Polarity;
  UCHAR                       PullConfiguration;
  USHORT                      DebounceTimeout;
  PVOID                       VendorData;
  ULONG                       VendorDataLength;
} GPIO_ENABLE_INTERRUPT_PARAMETERS, *PGPIO_ENABLE_INTERRUPT_PARAMETERS;

Члены

BankId

Идентификатор банка, содержащего пин-код GPIO. Если M — количество банков в контроллере GPIO, BankId — это целое число в диапазоне от 0 до M–1. Расширение платформы GPIO (GpioClx) ранее получило количество банков в контроллере из функции обратного вызова события CLIENT_QueryControllerBasicInformation . Дополнительные сведения см. в разделе Примечания в CLIENT_CONTROLLER_BASIC_INFORMATION.

PinNumber

Номер пин-кода относительно банка. Если N — число контактов в этом банке, PinNumber — это целое число в диапазоне от 0 до N–1. GpioClx ранее получил количество контактов в каждом банке из функции обратного вызова события CLIENT_QueryControllerBasicInformation . Дополнительные сведения см. в описании участника NumberOfPinsPerBank в CLIENT_CONTROLLER_BASIC_INFORMATION.

Flags

Набор флагов, управляющих конфигурацией контактов GPIO. В настоящее время флаги для этого элемента не определены.

InterruptMode

Указывает, является ли запрос прерывания от этого контакта GPIO чувствительным к уровню или по краям. Для этого элемента задано одно из следующих значений:

  • LevelSensitive

  • Кратковременная блокировка

Дополнительные сведения см. в разделе KINTERRUPT_MODE.

Polarity

Указывает, является ли строка прерывания из этого контакта GPIO активно-высокой или активно-низкой. Для этого элемента задано одно из следующих значений:

  • ПрерываниеActiveHigh

  • InterruptRisingEdge

  • InterruptActiveLow

  • InterruptFallingEdge

  • ПрерываниеActiveBoth

Дополнительные сведения см. в разделе KINTERRUPT_POLARITY.

PullConfiguration

Ли этот GPIO штифт вытащил или вытащил. Обычно для этого элемента задается одна из следующих системных констант:

  • GPIO_PIN_PULL_CONFIGURATION_PULLDEFAULT

  • GPIO_PIN_PULL_CONFIGURATION_PULLUP

  • GPIO_PIN_PULL_CONFIGURATION_PULLDOWN

  • GPIO_PIN_PULL_CONFIGURATION_PULLNONE

Если ни одна из этих констант не описывает конфигурацию закрепления, для этого элемента можно задать константу, определяемую поставщиком, в диапазоне от 128 до 255. Дополнительные сведения об этих константах см. в разделе GPIO_PIN_PULL_CONFIGURATION.

DebounceTimeout

Время дебоунса в единицах 10 микросекунд. Например, время отбоя 5,84 миллисекунда указывается как 584. Время отбоя — это время, необходимое для стабилизации входного сигнала на высоком уровне после начала перехода от низкого к высокому или на низком уровне после начала перехода "высокий к низкому". Например, если механический переключатель генерирует сигнал прерывания, то время разбиения — это время, необходимое для того, чтобы металлический контакт в коммутаторе прекратил подпрыгивание после включения или выключения переключателя.

VendorData

Указатель на буфер, выделенный вызывающим объектом, который содержит данные, определяемые поставщиком, для этого контакта GPIO. Этот член является необязательным и имеет значение NULL, если нет данных, определенных поставщиком. Дополнительные сведения о данных, определяемых поставщиком, см. в описании дескриптора подключения GPIO в спецификации ACPI 5.0.

VendorDataLength

Размер (в байтах) буфера данных, на который указывает элемент VendorData .

Комментарии

Функции обратного вызова событий CLIENT_EnableInterrupt и CLIENT_UnmaskInterrupt используют структуру GPIO_ENABLE_INTERRUPT_PARAMETERS для указания контакта GPIO и описания атрибутов прерывания этого закрепления.

Константы GPIO_PIN_PULL_CONFIGURATION_XXX указывают, выполняется ли вытягивание или вытягивание контакта ввода-вывода общего назначения (GPIO).

#define GPIO_PIN_PULL_CONFIGURATION_DEFAULT (0x0)
#define GPIO_PIN_PULL_CONFIGURATION_PULLUP (0x1)
#define GPIO_PIN_PULL_CONFIGURATION_PULLDOWN (0x2)
#define GPIO_PIN_PULL_CONFIGURATION_NONE (0x3)

Для элемента PullConfiguration структуры GPIO_ENABLE_INTERRUPT_PARAMETERS задана константа GPIO_PIN_PULL_CONFIGURATION_XXX .

Если ни одна из системных констант GPIO_PIN_PULL_CONFIGURATION_XXX не описывает конфигурацию контакта, для этого элемента можно задать константу, определяемую поставщиком в диапазоне от 128 до 255.

Требования

Требование Значение
Минимальная версия клиента Поддерживается начиная с Windows 8.
Верхняя часть gpioclx.h

См. также раздел

CLIENT_CONTROLLER_BASIC_INFORMATION

CLIENT_EnableInterrupt

CLIENT_QueryControllerBasicInformation

CLIENT_UnmaskInterrupt

KINTERRUPT_MODE

KINTERRUPT_POLARITY