GPIO_CLIENT_REGISTRATION_PACKET 结构 (gpioclx.h)

GPIO_CLIENT_REGISTRATION_PACKET 结构包含常规用途 I/O (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 接口的版本号。 将此成员设置为在 Gpioclx.h 头文件中定义的值 GPIO_CLIENT_VERSION。

Size

此结构的大小(以字节为单位)。 将此成员设置为 sizeof (GPIO_CLIENT_REGISTRATION_PACKET) 。

Flags

一组标志,指示选择了哪些注册选项。 当前没有为注册选项定义任何标志。 将此成员设置为零。

ControllerContextSize

所需的设备上下文大小(以字节为单位)。 GPIO_CLX_RegisterClient 方法分配此大小的设备上下文。 当 GpioClx 调用 GPIO_CLIENT_REGISTRATION_PACKET 结构中的任何已注册回调函数时,GpioClx 将此设备上下文作为参数传递给回调函数。 回调函数使用此上下文访问和更新驱动程序有关 GPIO 控制器设备状态的信息。 有关详细信息,请参阅 GPIO 设备上下文

Reserved

保留供将来使用。 将此成员设置为零。

CLIENT_PrepareController

指向 GPIO 控制器 驱动程序CLIENT_PrepareController事件 回调函数的指针。

CLIENT_ReleaseController

指向 GPIO 控制器 驱动程序CLIENT_ReleaseController事件 回调函数的指针。

CLIENT_StartController

指向 GPIO 控制器 驱动程序CLIENT_StartController事件 回调函数的指针。

CLIENT_StopController

指向 GPIO 控制器 驱动程序CLIENT_StopController事件 回调函数的指针。

CLIENT_QueryControllerBasicInformation

指向 GPIO 控制器 驱动程序CLIENT_QueryControllerBasicInformation事件 回调函数的指针。

CLIENT_QuerySetControllerInformation

指向 GPIO 控制器 驱动程序CLIENT_QuerySetControllerInformation事件 回调函数的指针。

CLIENT_EnableInterrupt

指向 GPIO 控制器驱动程序的 CLIENT_EnableInterrupt 事件回调函数的指针。

CLIENT_DisableInterrupt

指向 GPIO 控制器驱动程序的 CLIENT_DisableInterrupt 事件回调函数的指针。

CLIENT_UnmaskInterrupt

指向 GPIO 控制器驱动程序的 CLIENT_UnmaskInterrupt 事件回调函数的指针。

CLIENT_MaskInterrupts

指向 GPIO 控制器驱动程序CLIENT_MaskInterrupts事件回调函数 指针。

CLIENT_QueryActiveInterrupts

指向 GPIO 控制器驱动程序的 CLIENT_QueryActiveInterrupts 事件回调函数的指针。

CLIENT_ClearActiveInterrupts

指向 GPIO 控制器驱动程序的 CLIENT_ClearActiveInterrupts 事件回调函数 指针。

CLIENT_ConnectIoPins

指向 GPIO 控制器 驱动程序CLIENT_ConnectIoPins事件 回调函数的指针。

CLIENT_DisconnectIoPins

指向 GPIO 控制器 驱动程序CLIENT_DisconnectIoPins事件 回调函数的指针。

CLIENT_ReadGpioPins

指向 GPIO 控制器驱动程序的 CLIENT_ReadGpioPins 事件回调函数的指针。

CLIENT_ReadGpioPinsUsingMask

指向 GPIO 控制器 驱动程序CLIENT_ReadGpioPinsUsingMask事件 回调函数的指针。

CLIENT_WriteGpioPins

指向 GPIO 控制器驱动程序的 CLIENT_WriteGpioPins 事件回调函数的指针。

CLIENT_WriteGpioPinsUsingMask

指向 GPIO 控制器 驱动程序CLIENT_WriteGpioPinsUsingMask事件 回调函数的指针。

CLIENT_SaveBankHardwareContext

指向 GPIO 控制器 驱动程序CLIENT_SaveBankHardwareContext事件 回调函数的指针。

CLIENT_RestoreBankHardwareContext

指向 GPIO 控制器驱动程序的 CLIENT_RestoreBankHardwareContext 事件回调函数的指针。

CLIENT_PreProcessControllerInterrupt

指向 GPIO 控制器驱动程序的 CLIENT_PreProcessControllerInterrupt 事件回调函数 指针。

CLIENT_ControllerSpecificFunction

指向 GPIO 控制器 驱动程序CLIENT_ControllerSpecificFunction事件 回调函数的指针。

CLIENT_ReconfigureInterrupt

指向 GPIO 控制器 驱动程序CLIENT_ReconfigureInterrupt事件 回调函数的指针。

CLIENT_QueryEnabledInterrupts

指向 GPIO 控制器 驱动程序CLIENT_QueryEnabledInterrupts事件 回调函数的指针。 从 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 回调函数以获取包含 GPIO 控制器硬件属性和配置数据的 CLIENT_CONTROLLER_BASIC_INFORMATION 结构。 GpioClx 使用此信息来确定 GPIO 控制器驱动程序已实现的回调函数。

如果 GPIO 控制器驱动程序实现CLIENT_ReadGpioPinsCLIENT_WriteGpioPins回调函数,CLIENT_QueryControllerBasicInformation回调函数应将此CLIENT_CONTROLLER_BASIC_INFORMATION结构的 Flags 成员中的 FormatIoRequestsAsMasks 标志位设置为 0。

如果 CLIENT_QueryControllerBasicInformation 回调函数将 FormatIoRequestsAsMasks 标志位设置为 1,则此值指示驱动程序实现 CLIENT_ReadGpioPinsUsingMaskCLIENT_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