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_ControllerSpecificFunction
CLIENT_PreProcessControllerInterrupt
CLIENT_QueryControllerBasicInformation
CLIENT_RestoreBankHardwareContext