PNP_SERIAL_BUS_DESCRIPTOR 構造体 (reshub.h)
PNP_SERIAL_BUS_DESCRIPTOR構造体は、シリアル バス (I2C、SPI、または UART) へのターゲット デバイスの物理的な接続を記述します。
構文
typedef struct _PNP_SERIAL_BUS_DESCRIPTOR {
UCHAR Tag;
USHORT Length;
UCHAR RevisionId;
UCHAR ResourceSourceIndex;
UCHAR SerialBusType;
UCHAR GeneralFlags;
USHORT TypeSpecificFlags;
UCHAR TypeSpecificRevisionId;
USHORT TypeDataLength;
} PNP_SERIAL_BUS_DESCRIPTOR, *PPNP_SERIAL_BUS_DESCRIPTOR;
メンバー
Tag
シリアル バスの種類。 このメンバーは、シリアル バス (I2C、SPI、または UART) 接続の0x8eに設定されます。 詳細については、 ACPI 5.0 仕様のシリアル バス接続記述子の説明を参照してください。
Length
シリアル バス接続記述子の長さ (バイト単位)。 ACPI 5.0 の仕様と一致するように、PNP_SERIAL_BUS_DESCRIPTOR構造体の Length メンバーのバイト数は、構造体のサイズと等しくなります。構造体の先頭にある Tag メンバーと Length メンバーの 3 バイトに加えて、その構造体に続くバス型固有のデータとリソース ソース文字列のバイト数を差し引きます。 必須フィールドである Resource Source 文字列の最小サイズは 2 バイトです (1 文字のリソース ソース名と終端の null の場合)。 したがって、有効な最小 長の 値は 11 です。 詳細については、ACPI 5.0 の仕様に関するページを参照してください。
RevisionId
シリアル バス接続記述子のリビジョン ID。 このメンバーは、Reshub.h ヘッダー ファイルで定義されているSERIAL_BUS_DESCRIPTOR_REVISION定数に設定されます。
ResourceSourceIndex
将来利用するために予約されています。 このメンバーは使用されず、0 に設定されます。
SerialBusType
シリアル バスの種類。 このメンバーは、1 (I2C の場合)、2 (SPI の場合)、または 3 (UART の場合) に設定されます。 その他の値は、将来使用するために予約されているか、ハードウェア ベンダーによって定義されます。 詳細については、ACPI 5.0 の仕様に関するページを参照してください。
GeneralFlags
すべてのシリアル バスの種類に共通のフラグ。 ビット 0 は下位モード フラグです。 このビットが 1 に設定されている場合、この接続の通信はバス コントローラーによって開始されます。それ以外の場合、通信はターゲット デバイスによって開始されます。 ビット 1 はコンシューマー/プロデューサー フラグであり、常に 1 に設定されます。 現在、他のフラグ ビットは定義されていません。 詳細については、ACPI 5.0 の仕様に関するページを参照してください。
TypeSpecificFlags
シリアル バスの種類に固有のフラグ。 I2C バスの場合、接続で 10 ビット アドレスが使用されている場合、ビット 0 が設定されます。それ以外の場合、接続では 7 ビット アドレスが使用されます。 現在、I2C に対して他のフラグ ビットは定義されていません。 詳細については、ACPI 5.0 の仕様に関するページを参照してください。
TypeSpecificRevisionId
Tag メンバーによって指定されたシリアル バスの種類 (I2C、SPI、UART) に使用される、この構造体のバリアントのリビジョン ID。 各シリアル バスの種類は、バスの種類に固有のフィールドを追加することによって、 PNP_SERIAL_BUS_DESCRIPTOR 構造体を拡張します。 詳細については、ACPI 5.0 の仕様に関するページを参照してください。
TypeDataLength
PNP_SERIAL_BUS_DESCRIPTOR構造体に続くバス型固有のデータの長さ (バイト単位)。 この長さの値には、 TypeDataLength メンバーの末尾とリソース ソース文字列の先頭の間のデータが含まれますが、リソース ソース文字列は含まれません。 詳細については、ACPI 5.0 の仕様に関するページを参照してください。
注釈
この構造体は、ACPI 5.0 仕様のセクション 6.4.3.8.2 で説明されているように、シリアル バス接続記述子のデータ フィールドを定義します。 この記述子は、シリアル バス (I2C、SPI、または UART) に接続されているターゲット デバイスへのバス接続について説明します。
たとえば、I2C バス上のデバイスの 場合、PNP_SERIAL_BUS_DESCRIPTOR 構造 (およびそのバスの種類固有の拡張機能) は、デバイスのバス アドレス、アドレス モード (7 ビットまたは 10 ビット)、およびデバイスにアクセスするときにバス クロックを実行する頻度を指定します。 I2C コントローラー ドライバーが構造体からこの情報を抽出する方法を示すコード例については、「 デバイスの接続設定を取得する方法」を参照してください。
Reshub.h ヘッダー ファイル内の PNP_SERIAL_BUS_DESCRIPTOR 構造定義の前には、Pshpack1.h ヘッダー ファイルの include ステートメントが付きます。このステートメントは、隣接する構造体メンバーをバイト境界にパックするようにコンパイラを構成し、間にギャップを生じることなく行います。 その後、ソフトウェアは、シリアル バス接続記述子のメモリ イメージにパックされた構造をオーバーレイして、この記述子の個々のフィールドにアクセスできます。 構造体の USHORT メンバーは、メモリ内の偶数バイト境界にアラインされない可能性があります。 USHORT メンバーのバイトは、x86、x64、ARM プロセッサ アーキテクチャのリトル エンディアン順に格納されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 以降でサポートされています。 |
Header | reshub.h |