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 - 保留
這些位是保留的,而且必須設定為零。

TypeSpecificFlags

這個成員的值取決於 ResourceFlags 成員中的值。 下表說明每個資源類型的旗標。

記憶體資源 (ResourceFlags = 0)

位 () 意義
0 - 寫入狀態
設定時,表示此記憶體範圍可用於讀取和寫入。 否則,這表示此記憶體範圍是唯讀的。
1 到 2 - 記憶體屬性 (MEM)
0 - 表示記憶體不可快取。

1 - 指出記憶體是可快取的。

2 - 指出記憶體是可快取的,並支援寫入合併。

3 - 記憶體可快取且可預先擷取。

3 到 4 - 記憶體屬性 (MTP)
只有在此記憶體資源描述系統 RAM 時,才會定義這些位。

0 - 位址範圍內存:此範圍可供操作系統使用。

1 - 保留的位址範圍:此位址範圍由系統使用或保留,且不會包含在操作系統記憶體管理員的可配置記憶體集區中。

2 - 位址範圍 ACPI:ACPI 回收記憶體。 此範圍可在OS讀取ACPI數據表之後供作業系統使用。

3 - 位址範圍 NVS:ACPI NVS 記憶體。 此位址範圍由系統使用或保留,操作系統不得使用。 需要此範圍才能在 NVS 睡眠中儲存和還原。

5 - IO 轉譯的記憶體
0 - Type-static:此資源是網橋主要和次要端的記憶體。

1 - 類型轉譯:此資源是網橋次要端的記憶體,以及網橋主要端的 IO。

6 到 7 - 保留
這些位是保留的,而且必須設定為零。
 

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 - 保留
這些位是保留的,而且必須設定為零。
4 - IO 到記憶體轉譯
0 - 類型靜態:此資源是網橋主要和次要端的 IO。

1 - 類型轉譯:此資源是網橋次要端的IO,以及網橋主要端的記憶體。

5 - 疏鬆翻譯
只有在設定 bit 4 (IO 到記憶體轉譯) 時,這個位才有意義。

0 - 密集轉譯:您可以使用下列函式,找到次要範圍內任何特定 IO 埠的主要端記憶體位址。

address = port + TranslationAddress

1 - 疏鬆轉譯:您可以使用下列函式找到次要範圍內任何特定 IO 埠的主要端記憶體位址。

address = ( ( (port & 0xFFFc) << 10) || (port & 0xFFF) ) + TranslationAddress

在用來存取 IO 埠的位址中,位 2 到 11 必須與位 12 到 21 相同,這會在每個 4 KB 頁面上提供四個字節的 IO 連接埠。

6 到 7 - 保留
這些位是保留的,而且必須設定為零。
 

總線號碼範圍資源 (ResourceFlags = 2)

位 () 意義
0 到 7 - 保留
這些位是保留的,而且必須設定為零。

RevisionId

指出此結構詳述之擴充位址空間描述項的修訂。 若為 ACPI 3.0,此值為 1。

Reserved

Granularity

位掩碼,表示已譯碼的位。

MinimumAddress

最小起始位址。 對於轉譯位址的網橋,這是網橋次要端的地址空間。

MaximumAddress

起始位址上限。 對於轉譯位址的網橋,這是網橋次要端的地址空間。

TranslationAddress

對於跨網橋轉譯位址的網橋,這是主要端的位址。

AddressLength

地址長度。

TypeAttribute

指出 ResourceFlags 成員中所指定之資源類型特有的屬性。 如果 ResourceFlags 為零,則此值為零,否則可以在標題為 GetMemoryMap () 一節的 UEFI 規格中找到該值的意義。

DescriptorName

這個資源描述元的名稱。

規格需求

需求
最低支援的用戶端 從Windows 10 開始支援。
標頭 pep_x.h (包含 Pep_x.h)