PEP_ACPI_EXTENDED_ADDRESS 構造体 (pep_x.h)
PEP_ACPI_EXTENDED_ADDRESS構造体は、メモリや IO などのアドレス空間のリソース使用状況を報告するために使用されます。
構文
typedef struct _PEP_ACPI_EXTENDED_ADDRESS {
PEP_ACPI_RESOURCE_TYPE Type;
PEP_ACPI_RESOURCE_FLAGS Flags;
UCHAR ResourceFlags;
UCHAR GeneralFlags;
UCHAR TypeSpecificFlags;
UCHAR RevisionId;
UCHAR Reserved;
ULONGLONG Granularity;
ULONGLONG MinimumAddress;
ULONGLONG MaximumAddress;
ULONGLONG TranslationAddress;
ULONGLONG AddressLength;
ULONGLONG TypeAttribute;
PUNICODE_STRING DescriptorName;
} PEP_ACPI_EXTENDED_ADDRESS, *PPEP_ACPI_EXTENDED_ADDRESS;
メンバー
Type
このリソースを記述する PEP_ACPI_RESOURCE_TYPE 列挙値。
Flags
このリソースを記述する PEP_ACPI_RESOURCE_FLAGS 構造体。
ResourceFlags
この構造体が説明するリソースの種類を示します。
値 |
意味 |
- 0
|
このリソースがメモリ範囲であることを示します。
|
- 1
|
このリソースが IO 範囲であることを示します。
|
- 2
|
このリソースがバス番号の範囲であることを示します。
|
- 3-191
|
これらの値は、将来使用するために予約されています。
|
- 192-255
|
これらの値は、ハードウェア ベンダーが使用するために予約されています。
|
GeneralFlags
すべてのリソースの種類に共通するビット フラグを含む 値。
ビット |
意味 |
- 0 - コンシューマー/プロデューサー フラグ
|
設定すると、デバイスがこのリソースを使用することを示します。
|
- 1 - デコードの種類
|
を設定すると、このブリッジがアドレスを減算してデコードすることを示します。 これは、最上位レベルのブリッジにのみ適用されます。
設定されていない場合は、このブリッジによってこのアドレスが正にデコードされることを示します。
|
- 2 - 最小アドレス固定
|
を設定すると、最小アドレスが固定されていることを示します。
|
- 3 - 最大アドレス固定
|
を設定すると、最大アドレスが固定されていることを示します。
|
- 4 から 7 - 予約済み
|
これらのビットは予約されており、0 に設定する必要があります。
|
TypeSpecificFlags
このメンバーの値は、 ResourceFlags メンバーの値に依存します。 各リソースの種類のフラグについては、次の表で説明します。
メモリ リソース (ResourceFlags = 0)
ビット |
意味 |
- 0 - 書き込み状態
|
を設定すると、このメモリ範囲が読み取りと書き込みに使用できます。 それ以外の場合は、このメモリ範囲が読み取り専用であることを示します。
|
- 1 から 2 - メモリ属性 (MEM)
|
0 - メモリがキャッシュ不可能であることを示します。
1 - メモリがキャッシュ可能であることを示します。
2 - メモリがキャッシュ可能であり、書き込みの組み合わせをサポートすることを示します。
3 - メモリはキャッシュ可能でプリフェッチ可能です。
|
- 3 から 4 - メモリ属性 (MTP)
|
これらのビットは、このメモリ リソースでシステム RAM が記述されている場合にのみ定義されます。
0 - アドレス範囲メモリ: この範囲は、オペレーティング システムで使用可能な RAM です。
1 - 予約されているアドレス範囲: このアドレスの範囲は、システムによって使用中または予約されており、オペレーティング システムのメモリ マネージャーの割り当て可能なメモリ プールに含まれるものではありません。
2 - アドレス範囲 ACPI: ACPI メモリの再利用。 この範囲は、ACPI テーブルを読み取った後に OS で使用可能な RAM です。
3 - アドレス範囲 NVS: ACPI NVS メモリ。 この範囲のアドレスは、システムによって使用中または予約されており、オペレーティング システムで使用することはできません。 この範囲は、NVS スリープ全体で保存および復元する必要があります。
|
- 5 - メモリから IO への変換
|
0 - Type-static: このリソースは、ブリッジのプライマリ側とセカンダリ側のメモリです。
1 - 型変換: このリソースは、ブリッジのセカンダリ側のメモリと、ブリッジのプライマリ側の IO です。
|
- 6 から 7 - 予約済み
|
これらのビットは予約されており、0 に設定する必要があります。
|
IO リソース (ResourceFlags = 1)
ビット |
意味 |
- 0 ~ 1 - 範囲
|
0 - 予約済み。
1 - ISA 以外の範囲のみ。 このフラグは、複数のブリッジを持つシステム上のブリッジ用です。 このビットを設定すると、この記述子で指定されたメモリ ウィンドウは、指定されたウィンドウ内にある ISA 以外の IO アドレスに制限されます。 ISA 以外の IO 範囲は、n100-n3FF、n500-n7FF、n900-nBFF、nD00-nFFF です。 このビットは、ACPI 名前空間を介して完全に構成されたブリッジにのみ設定できます。
2 - ISA 範囲のみ。 このフラグは、複数のブリッジを持つシステム上のブリッジ用です。 このビットを設定すると、この記述子で指定されたメモリ ウィンドウは、指定されたウィンドウ内にある ISA IO アドレスに制限されます。 ISA IO の範囲は、n000-n0FF、n400-n4FF、n800-n8FF、nC00-nCFF です。 このビットは、ACPI 名前空間を介して完全に構成されたブリッジにのみ設定できます。
3 - メモリ ウィンドウは範囲全体をカバーします
|
- 2 から 3 - 予約済み
|
これらのビットは予約されており、0 に設定する必要があります。
|
- 4 - IO からメモリへの変換
|
0 - Type-static: このリソースは、ブリッジのプライマリ側とセカンダリ側の IO です。
1 - 型変換: このリソースは、ブリッジのセカンダリ側の IO であり、ブリッジのプライマリ側のメモリです。
|
- 5 - スパース変換
|
このビットは、ビット 4 (IO からメモリへの変換) が設定されている場合にのみ意味があります。
0 - 高密度変換: セカンダリ側の範囲内の特定の IO ポートのプライマリ側メモリ アドレスは、次の関数を使用して確認できます。
address = port + TranslationAddress
1 - スパース変換: セカンダリ側の範囲内の特定の IO ポートのプライマリ側メモリ アドレスは、次の関数を使用して確認できます。
address = (((port & 0xFFFc) << 10) ||(ポート & 0xFFF))+ TranslationAddress
IO ポートへのアクセスに使用されるアドレスでは、ビット 2 から 11 はビット 12 から 21 と同じである必要があります。これにより、各 4 KB ページで 4 バイトの IO ポートが提供されます。
|
- 6 から 7 - 予約済み
|
これらのビットは予約されており、0 に設定する必要があります。
|
バス番号範囲リソース (ResourceFlags = 2)
ビット |
意味 |
- 0 から 7 - 予約済み
|
これらのビットは予約されており、0 に設定する必要があります。
|
RevisionId
この構造体によって詳細な拡張アドレス空間記述子のリビジョンを示します。 ACPI 3.0 の場合、この値は 1 です。
Reserved
Granularity
デコードされたビットを示すビット マスク。
MinimumAddress
最小開始アドレス。 アドレスを変換するブリッジの場合、これはブリッジのセカンダリ側のアドレス空間です。
MaximumAddress
最大開始アドレス。 アドレスを変換するブリッジの場合、これはブリッジのセカンダリ側のアドレス空間です。
TranslationAddress
ブリッジを介してアドレスを変換するブリッジの場合、これはプライマリ側のアドレスです。
AddressLength
アドレスの長さ。
TypeAttribute
ResourceFlags メンバーで指定されたリソースの種類に固有の属性を示します。 ResourceFlags が 0 の場合、この値は 0 です。それ以外の場合、値の意味は GetMemoryMap()というセクションの UEFI 仕様にあります。
DescriptorName
このリソース記述子の名前。
要件
要件 |
値 |
サポートされている最小のクライアント |
Windows 10 以降でサポートされています。 |
Header |
pep_x.h (Pep_x.h を含む) |