структура GPIO_CLIENT_REGISTRATION_PACKET (gpioclx.h)
Структура GPIO_CLIENT_REGISTRATION_PACKET содержит сведения о регистрации, которые драйвер контроллера ввода-вывода общего назначения (GPIO) передает в расширение платформы GPIO (GpioClx).
Синтаксис
typedef struct _GPIO_CLIENT_REGISTRATION_PACKET {
USHORT Version;
USHORT Size;
ULONG Flags;
ULONG ControllerContextSize;
ULONG64 Reserved;
PGPIO_CLIENT_PREPARE_CONTROLLER CLIENT_PrepareController;
PGPIO_CLIENT_RELEASE_CONTROLLER CLIENT_ReleaseController;
PGPIO_CLIENT_START_CONTROLLER CLIENT_StartController;
PGPIO_CLIENT_STOP_CONTROLLER CLIENT_StopController;
PGPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION CLIENT_QueryControllerBasicInformation;
PGPIO_CLIENT_QUERY_SET_CONTROLLER_INFORMATION CLIENT_QuerySetControllerInformation;
PGPIO_CLIENT_ENABLE_INTERRUPT CLIENT_EnableInterrupt;
PGPIO_CLIENT_DISABLE_INTERRUPT CLIENT_DisableInterrupt;
PGPIO_CLIENT_UNMASK_INTERRUPT CLIENT_UnmaskInterrupt;
PGPIO_CLIENT_MASK_INTERRUPTS CLIENT_MaskInterrupts;
PGPIO_CLIENT_QUERY_ACTIVE_INTERRUPTS CLIENT_QueryActiveInterrupts;
PGPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS CLIENT_ClearActiveInterrupts;
PGPIO_CLIENT_CONNECT_IO_PINS CLIENT_ConnectIoPins;
PGPIO_CLIENT_DISCONNECT_IO_PINS CLIENT_DisconnectIoPins;
union {
PGPIO_CLIENT_READ_PINS CLIENT_ReadGpioPins;
PGPIO_CLIENT_READ_PINS_MASK CLIENT_ReadGpioPinsUsingMask;
};
union {
PGPIO_CLIENT_WRITE_PINS CLIENT_WriteGpioPins;
PGPIO_CLIENT_WRITE_PINS_MASK CLIENT_WriteGpioPinsUsingMask;
};
PGPIO_CLIENT_SAVE_BANK_HARDWARE_CONTEXT CLIENT_SaveBankHardwareContext;
PGPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT CLIENT_RestoreBankHardwareContext;
PGPIO_CLIENT_PRE_PROCESS_CONTROLLER_INTERRUPT CLIENT_PreProcessControllerInterrupt;
PGPIO_CLIENT_CONTROLLER_SPECIFIC_FUNCTION CLIENT_ControllerSpecificFunction;
PGPIO_CLIENT_RECONFIGURE_INTERRUPT CLIENT_ReconfigureInterrupt;
PGPIO_CLIENT_QUERY_ENABLED_INTERRUPTS CLIENT_QueryEnabledInterrupts;
PGPIO_CLIENT_CONNECT_FUNCTION_CONFIG_PINS CLIENT_ConnectFunctionConfigPins;
PGPIO_CLIENT_DISCONNECT_FUNCTION_CONFIG_PINS CLIENT_DisconnectFunctionConfigPins;
} GPIO_CLIENT_REGISTRATION_PACKET, *PGPIO_CLIENT_REGISTRATION_PACKET;
Члены
Version
Номер версии для интерфейса GPIO, который поддерживает драйвер контроллера GPIO. Задайте этому элементу значение GPIO_CLIENT_VERSION, которое определено в файле заголовка Gpioclx.h.
Size
Размер этой структуры в байтах. Установите для этого элемента значение sizeof(GPIO_CLIENT_REGISTRATION_PACKET).
Flags
Набор флагов, указывающий, какие параметры регистрации выбраны. Флаги в настоящее время не определены для параметров регистрации. Установите для этого элемента значение нулю.
ControllerContextSize
Требуемый размер контекста устройства в байтах. Метод GPIO_CLX_RegisterClient выделяет контекст устройства этого размера. Когда GpioClx вызывает любую зарегистрированную функцию обратного вызова в структуре GPIO_CLIENT_REGISTRATION_PACKET, GpioClx передает этот контекст устройства функции обратного вызова в качестве параметра. Функции обратного вызова используют этот контекст для доступа и обновления сведений о состоянии устройства контроллера GPIO. Дополнительные сведения см. в контекстах устройств GPIO.
Reserved
Зарезервировано для дальнейшего использования. Установите для этого элемента значение нулю.
CLIENT_PrepareController
Указатель на функцию обратного вызова события драйвера контроллер CLIENT_PrepareController а GPIO.
CLIENT_ReleaseController
Указатель на функцию обратного вызова событий CLIENT_ReleaseController драйвера контроллера GPIO.
CLIENT_StartController
Указатель на функцию обратного вызова события CLIENT_StartController драйвера контроллера GPIO.
CLIENT_StopController
Указатель на функцию обратного вызова события CLIENT_StopController драйвера контроллера GPIO.
CLIENT_QueryControllerBasicInformation
Указатель на функцию обратного вызова события CLIENT_QueryControllerBasicInformation драйвера контроллера GPIO.
CLIENT_QuerySetControllerInformation
Указатель на функцию обратно CLIENT_QuerySetControllerInformation го вызова события драйвера контроллера GPIO.
CLIENT_EnableInterrupt
Указатель на функцию обратного вызова событий CLIENT_EnableInterrupt драйвера контроллера GPIO.
CLIENT_DisableInterrupt
Указатель на функцию обратного вызова события драйвера контроллер CLIENT_DisableInterrupt а GPIO.
CLIENT_UnmaskInterrupt
Указатель на функцию обратного вызова событий CLIENT_UnmaskInterrupt драйвера контроллера GPIO.
CLIENT_MaskInterrupts
Указатель на функцию обратного вызова события драйвера контроллер CLIENT_MaskInterrupts а GPIO.
CLIENT_QueryActiveInterrupts
Указатель на функцию обратного вызова событий CLIENT_QueryActiveInterrupts драйвера контроллера GPIO.
CLIENT_ClearActiveInterrupts
Указатель на функцию обратного вызова событий CLIENT_ClearActiveInterrupts драйвера контроллера GPIO.
CLIENT_ConnectIoPins
Указатель на функцию обратного вызова события драйвера контроллер CLIENT_ConnectIoPins а GPIO.
CLIENT_DisconnectIoPins
Указатель на функцию обратного вызова события драйвера контроллер CLIENT_DisconnectIoPins а GPIO.
CLIENT_ReadGpioPins
Указатель на функцию обратного вызова событий CLIENT_ReadGpioPins драйвера контроллера GPIO.
CLIENT_ReadGpioPinsUsingMask
Указатель на функцию обратного вызова события CLIENT_ReadGpioPinsUsingMask драйвера контроллера GPIO.
CLIENT_WriteGpioPins
Указатель на функцию обратного вызова события CLIENT_WriteGpioPins драйвера контроллера GPIO.
CLIENT_WriteGpioPinsUsingMask
Указатель на функцию обратного вызова событий CLIENT_WriteGpioPinsUsingMask драйвера контроллера GPIO.
CLIENT_SaveBankHardwareContext
Указатель на функцию обратного вызова событий CLIENT_SaveBankHardwareContext драйвера контроллера GPIO.
CLIENT_RestoreBankHardwareContext
Указатель на функцию обратного вызова событий CLIENT_RestoreBankHardwareContext драйвера контроллера GPIO.
CLIENT_PreProcessControllerInterrupt
Указатель на функцию обратно CLIENT_PreProcessControllerInterrupt го вызова событий драйвера контроллера GPIO.
CLIENT_ControllerSpecificFunction
Указатель на функцию обратного вызова события драйвера контроллер CLIENT_ControllerSpecificFunction а GPIO.
CLIENT_ReconfigureInterrupt
Указатель на функцию обратного вызова событий CLIENT_ReconfigureInterrupt драйвера контроллера GPIO.
CLIENT_QueryEnabledInterrupts
Указатель на функцию обратного вызова событий CLIENT_QueryEnabledInterrupts драйвера контроллера GPIO. Этот член поддерживается начиная с Windows 8.1.
CLIENT_ConnectFunctionConfigPins
CLIENT_DisconnectFunctionConfigPins
Замечания
Драйвер контроллера GPIO передает указатель на структуру GPIO_CLIENT_REGISTRATION_PACKET в качестве входного параметра методу GPIO_CLX_RegisterClient. Этот метод регистрирует драйвер для использования служб, предоставляемых GpioClx. Как правило, драйвер вызывает этот метод из подпрограммы DriverEnt ry DriverEntry.
Структура GPIO_CLIENT_REGISTRATION_PACKET содержит два неназванных объединения. Каждый союз может содержать указатель на один из двух альтернативных типов функций обратного вызова событий. В каждом случае драйвер контроллера GPIO должен реализовать тип функции обратного вызова, которая лучше всего подходит для оборудования контроллера GPIO. Функция обратного вызова драйвера контроллера GPIO CLIENT_QueryControllerBasicInformation сообщает GpioClx, какие функции обратного вызова реализуются.
После вызова драйвера контроллера GPIO GPIO_CLX_RegisterClient для регистрации набора обратных вызовов GpioClx вызывает функцию обратного вызова драйвера CLIENT_QueryControllerBasicInformation для получения CLIENT_CONTROLLER_BASIC_INFORMATION структуры, содержащей атрибуты оборудования контроллера GPIO и данные конфигурации. GpioClx использует эти сведения для определения функций обратного вызова, реализованных драйвером контроллера GPIO.
Если драйвер контроллера GPIO реализует CLIENT_ReadGpioPins и CLIENT_WriteGpioPins функции обратного вызова, функция обратного вызова CLIENT_QueryControllerBasicInformation должна задать бит флага FormatIoRequestsAsMasks в элементе Flags этой структуры CLIENT_CONTROLLER_BASIC_INFORMATION значение 0.
Если функция обратного вызова CLIENT_QueryControllerBasicInformation задает значение FormatIoRequestsAsMasks бит 1, это значение указывает, что драйвер реализует функции обратного вызова CLIENT_ReadGpioPinsUsingMask и CLIENT_WriteGpioPinsUsingMask.
GpioClx требует драйвер контроллера GPIO для реализации некоторых функций обратного вызова, но поддержка других функций обратного вызова является необязательной. Дополнительные сведения см. в разделе Необязательные и обязательные функции обратного вызова GPIO.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Поддерживается начиная с Windows 8. |
заголовка | gpioclx.h |
См. также
CLIENT_CONTROLLER_BASIC_INFORMATION
CLIENT_ControllerSpecificFunction
CLIENT_PreProcessControllerInterrupt
CLIENT_QueryControllerBasicInformation
CLIENT_RestoreBankHardwareContext