// gpioclx.h
typedef struct _CLIENT_CONTROLLER_QUERY_SET_INFORMATION_INPUT {
CLIENT_CONTROLLER_QUERY_SET_REQUEST_TYPE RequestType;
USHORT Size;
ULONG Flags;
union {
struct {
BANK_ID BankId;
} BankPowerInformation;
struct {
WDFCMRESLIST ResourcesTranslated;
WDFCMRESLIST ResourcesRaw;
USHORT TotalBanks;
} BankInterruptBinding;
struct {
PVOID InputBuffer;
SIZE_T InputBufferSize;
SIZE_T OutputBufferSize;
USHORT TotalBanks;
} ControllerFunctionBankMapping;
};
} CLIENT_CONTROLLER_QUERY_SET_INFORMATION_INPUT, *PCLIENT_CONTROLLER_QUERY_SET_INFORMATION_INPUT;
View the official Windows Driver Kit DDI referenceNo description available.
The CLIENT_CONTROLLER_QUERY_SET_INFORMATION_INPUT structure contains a request for the hardware attributes of the general-purpose I/O (GPIO) controller.
RequestTypeThe type of attribute information that is being requested. This member is set to a CLIENT_CONTROLLER_QUERY_SET_REQUEST_TYPE enumeration value.
SizeSpecifies the size, in bytes, of the CLIENT_CONTROLLER_QUERY_SET_INFORMATION_INPUT structure.
FlagsA set of flag bits that supply additional information about the type of attribute request indicated by the RequestType member. No flags are currently defined for the Flags member.
BankPowerInformationA structure that contains information about the GPIO bank whose power attributes are being requested.
BankPowerInformation.BankIdThe identifier for a bank of 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.
BankInterruptBindingA structure that contains information about the interrupt resources that are assigned to the GPIO controller.
BankInterruptBinding.ResourcesTranslatedA handle to a framework resource-list object that identifies the translated hardware resources that the Plug and Play manager has assigned to the device.
BankInterruptBinding.ResourcesRawA handle to a framework resource-list object that identifies the raw hardware resources that the Plug and Play manager has assigned to the device.
BankInterruptBinding.TotalBanksThe number of banks in the GPIO controller. This member indicates the expected length of the BankInterruptBinding.ResourceMapping array in the caller-allocated CLIENT_CONTROLLER_QUERY_SET_INFORMATION_OUTPUT structure, if the caller supplies a non-NULL pointer to this structure.
ControllerFunctionBankMappingA structure that contains information about an I/O control request (IOCTL).
ControllerFunctionBankMapping.InputBufferA pointer to the input buffer for the IOCTL.
ControllerFunctionBankMapping.InputBufferSizeThe size, in bytes, of the input buffer for the IOCTL.
ControllerFunctionBankMapping.OutputBufferSizeThe size, in bytes, of the output buffer for the IOCTL.
ControllerFunctionBankMapping.TotalBanksThe number of banks in the GPIO controller. This member indicates the expected length of the ControllerFunctionBankMapping.Mapping array in the caller-allocated CLIENT_CONTROLLER_QUERY_SET_INFORMATION_OUTPUT structure, if the caller supplies a non-NULL pointer to this structure.
The unnamed union contains input information for the various types of attribute requests. The RequestType member determines which member of this union is used. The following table shows the union member that corresponds to each valid RequestType value.
| RequestType value | Union member |
|---|---|
| QueryBankPowerInformation | BankPowerInformation |
| QueryBankInterruptBindingInformation | BankInterruptBinding |
| QueryControllerFunctionBankMappingInformation | ControllerFunctionBankMapping |
The InputBuffer parameter of the CLIENT_QuerySetControllerInformation function is a pointer to a CLIENT_CONTROLLER_QUERY_SET_INFORMATION_INPUT structure.