共用方式為


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