次の方法で共有


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

選択されている登録オプションを示すフラグのセット。 現在、登録オプションに対してフラグは定義されていません。 このメンバーを 0 に設定します。

ControllerContextSize

必要なデバイス コンテキスト サイズ (バイト単位)。 GPIO_CLX_RegisterClient メソッドは、このサイズのデバイス コンテキストを割り当てます。 GpioClx が GPIO_CLIENT_REGISTRATION_PACKET 構造体で登録されているコールバック関数を呼び出すと、GpioClx はこのデバイス コンテキストをパラメーターとしてコールバック関数に渡します。 コールバック関数は、このコンテキストを使用して、GPIO コントローラー デバイスの状態に関するドライバーの情報にアクセスして更新します。 詳細については、「GPIO デバイス コンテキストの」を参照してください。

Reserved

将来の使用のために予約されています。 このメンバーを 0 に設定します。

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 構造体には、2 つの名前のない共用体が含まれています。 各共用体には、2 つの代替タイプのイベント コールバック関数のいずれかを指すポインターを含めることができます。 いずれの場合も、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 コールバック関数と必要な 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