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_CLX_RegisterClient メソッドへの入力パラメーターとして、GPIO_CLIENT_REGISTRATION_PACKET構造体へのポインターを渡します。 このメソッドは、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 以降でサポートされています。
Header 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