GPIO_CONNECT_IO_PINS_PARAMETERS structure (gpioclx.h)

The GPIO_CONNECT_IO_PINS_PARAMETERS structure describes a logical connection to a set of general-purpose I/O (GPIO) pins and specifies whether to configure these pins as data inputs or outputs.

Syntax

typedef struct _GPIO_CONNECT_IO_PINS_PARAMETERS {
  BANK_ID                    BankId;
  PPIN_NUMBER                PinNumberTable;
  USHORT                     PinCount;
  GPIO_CONNECT_IO_PINS_MODE  ConnectMode;
  UCHAR                      PullConfiguration;
  USHORT                     DebounceTimeout;
  USHORT                     DriveStrength;
  PVOID                      VendorData;
  ULONG                      VendorDataLength;
  GPIO_CONNECT_IO_PINS_FLAGS ConnectFlags;
} GPIO_CONNECT_IO_PINS_PARAMETERS, *PGPIO_CONNECT_IO_PINS_PARAMETERS;

Members

BankId

The identifier for the bank that contains the GPIO pins. If M is the number of banks in the GPIO controller, BankId is an integer in the range 0 to M–1. The GPIO framework extension (GpioClx) previously obtained the number of banks in the controller from the CLIENT_QueryControllerBasicInformation event callback function. For more information, see Remarks in CLIENT_CONTROLLER_BASIC_INFORMATION.

PinNumberTable

A pointer to an array of PIN_NUMBER values. Each array element specifies the number of a GPIO pin to connect to. If N is the number of pins in this bank, the pins are numbered 0 to N–1. The number of elements in this array is specified by the PinCount member.

PinCount

The number of elements in the PinNumberTable array.

ConnectMode

Whether the GPIO pins in the new connection should be configured as inputs or as outputs. The value of this parameter is ConnectModeInput for a read-only connection, ConnectModeOutput for a write-only connection, and (ConnectModeInput | ConnectModeOutput) for a read/write connection. For more information, see GPIO_CONNECT_IO_PINS_MODE.

PullConfiguration

Whether the GPIO pin is pulled up or pulled down. This member is typically set to one of the following system-defined constants:

  • GPIO_PIN_PULL_CONFIGURATION_PULLDEFAULT
  • GPIO_PIN_PULL_CONFIGURATION_PULLUP
  • GPIO_PIN_PULL_CONFIGURATION_PULLDOWN
  • GPIO_PIN_PULL_CONFIGURATION_PULLNONE
If none of these constants appropriately describes the pin configuration, this member can be set to a vendor-defined constant in the range 128-255. For more information about these constants, see GPIO_PIN_PULL_CONFIGURATION_XXX.

DebounceTimeout

The debounce time in units of 10 microseconds. For example, a debounce time of 5.84 milliseconds is specified as 584. If an input signal is generated by a mechanical switch, the metal contact in the switch tends to bounce for a brief time after the switch is turned on or off. The debounce time is the minimum time that the level of the input signal must remain stable before the signal can be interpreted as a valid high or low level.

DriveStrength

The drive strength of the GPIO pin in units of 10 microamperes. For example, a drive strength of 1.21 milliamperes is specified as 121.

VendorData

A pointer to a caller-allocated buffer that contains vendor-specific data obtained from the ACPI firmware for the hardware platform. This data is copied from the VendorData field of the GPIO resource descriptor that describes the data I/O connection between the peripheral device and a set of GPIO pins on the GPIO controller. This member is optional and is set to NULL if the firmware does not supply vendor-specific data for this connection.

VendorDataLength

The size, in bytes, of the data buffer that is pointed to by the VendorData member. If VendorData is NULL, VendorDataLength is set to zero.

ConnectFlags

A set of flags that control the configuration of the GPIO pins. No flags are currently defined for this member.

Remarks

The ClientParameters parameter to the CLIENT_ConnectIoPins event callback routine is a pointer to a GPIO_CONNECT_IO_PINS_PARAMETERS structure.

Requirements

Requirement Value
Minimum supported client Supported starting with Windows 8.
Header gpioclx.h

See also

CLIENT_CONTROLLER_BASIC_INFORMATION

CLIENT_ConnectIoPins

CLIENT_QueryControllerBasicInformation

GPIO_CONNECT_IO_PINS_MODE

GPIO_PIN_PULL_CONFIGURATION_XXX