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