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