Поделиться через


структура 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_ClearActiveInterrupts

CLIENT_ConnectIoPins

CLIENT_ControllerSpecificFunction

CLIENT_DisableInterrupt

CLIENT_DisconnectIoPins

CLIENT_EnableInterrupt

CLIENT_MaskInterrupts

CLIENT_PreProcessControllerInterrupt

CLIENT_PrepareController

CLIENT_QueryActiveInterrupts

CLIENT_QueryControllerBasicInformation

CLIENT_QueryEnabledInterrupts

CLIENT_ReadGpioPins

CLIENT_ReadGpioPinsUsingMask

CLIENT_ReconfigureInterrupt

CLIENT_ReleaseController

CLIENT_RestoreBankHardwareContext

CLIENT_SaveBankHardwareContext

CLIENT_StartController

CLIENT_StopController

CLIENT_UnmaskInterrupt

CLIENT_WriteGpioPins

CLIENT_WriteGpioPinsUsingMask

DriverEntry

GPIO_CLX_RegisterClient