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_ReadGpioPins和CLIENT_WriteGpioPins回调函数,CLIENT_QueryControllerBasicInformation回调函数应将此CLIENT_CONTROLLER_BASIC_INFORMATION结构的 Flags 成员中的 FormatIoRequestsAsMasks 标志位设置为 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