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

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

ControllerContextSize

Требуемый размер контекста устройства в байтах. Метод GPIO_CLX_RegisterClient выделяет контекст устройства этого размера. Когда GpioClx вызывает любую зарегистрированную функцию обратного вызова в структуре GPIO_CLIENT_REGISTRATION_PACKET , GpioClx передает этот контекст устройства функции обратного вызова в качестве параметра. Функции обратного вызова используют этот контекст для доступа и обновления сведений о состоянии устройства контроллера GPIO. Дополнительные сведения см. в разделе "Контексты устройств GPIO".

Reserved

Зарезервировано для последующего использования. Присвойте этому члену значение 0.

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. Как правило, драйвер вызывает этот метод из подпрограммы 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 функции обратного вызова.

Для реализации определенных функций обратного вызова требуется драйвер контроллера 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