PEP_ACPI_EXTENDED_ADDRESS-Struktur (pep_x.h)

Die PEP_ACPI_EXTENDED_ADDRESS-Struktur wird verwendet, um die Ressourcennutzung im Adressraum wie Arbeitsspeicher und E/A zu melden.

Syntax

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;

Member

Type

Ein PEP_ACPI_RESOURCE_TYPE Enumerationswert, der diese Ressource beschreibt.

Flags

Eine PEP_ACPI_RESOURCE_FLAGS-Struktur , die diese Ressource beschreibt.

ResourceFlags

Gibt den Typ der Ressource an, die von dieser Struktur beschrieben wird.

Wert Bedeutung
0
Gibt an, dass es sich bei dieser Ressource um einen Speicherbereich handelt.
1
Gibt an, dass diese Ressource ein E/A-Bereich ist.
2
Gibt an, dass es sich bei dieser Ressource um einen Busnummernbereich handelt.
3-191
Diese Werte sind für die zukünftige Verwendung reserviert.
192-255
Diese Werte sind für die Verwendung durch den Hardwarehersteller reserviert.

GeneralFlags

Ein -Wert, der die Bitflags enthält, die allen Ressourcentypen gemeinsam sind.

Bit(s) Bedeutung
0 – Verbraucher-/Erzeugerflagge
Wenn festgelegt, gibt dies an, dass das Gerät diese Ressource nutzt.
1. Decodierungstyp
Gibt bei Festlegung an, dass diese Brücke die Adresse subtraktiv dekodiert. Dies gilt nur für Brücken auf oberster Ebene.

Wenn nicht festgelegt, gibt an, dass diese Brücke diese Adresse positiv decodiert.

2 – Festgelegte Mindestadresse
Wenn festgelegt, gibt an, dass die Mindestadresse festgelegt ist.
3 – Max. Adresse korrigiert
Gibt bei Festlegung an, dass die maximale Adresse festgelegt ist.
4 bis 7 – Reserviert
Diese Bits sind reserviert und müssen auf 0 (null) festgelegt werden.

TypeSpecificFlags

Der Wert dieses Members hängt vom Wert im ResourceFlags-Element ab. Die Flags für jeden Ressourcentyp werden in den folgenden Tabellen beschrieben.

Arbeitsspeicherressource (ResourceFlags = 0)

Bit(s) Bedeutung
0 – Schreiben von status
Gibt bei Festlegung an, dass dieser Speicherbereich zum Lesen und Schreiben verfügbar ist. Andernfalls gibt dies an, dass dieser Speicherbereich schreibgeschützt ist.
1 bis 2 – Speicherattribute (MEM)
0 : Gibt an, dass der Arbeitsspeicher nicht zwischengespeichert werden kann.

1 : Gibt an, dass der Arbeitsspeicher zwischengespeichert werden kann.

2 : Gibt an, dass der Arbeitsspeicher zwischengespeichert werden kann und die Kombination von Schreibvorgängen unterstützt.

3 : Der Arbeitsspeicher kann zwischengespeichert und vorab abgerufen werden.

3 bis 4 – Arbeitsspeicherattribute (MTP)
Diese Bits werden nur definiert, wenn diese Speicherressource den System-RAM beschreibt.

0 – Adressbereichsspeicher: Dieser Bereich ist verfügbarer RAM, der vom Betriebssystem verwendet werden kann.

1 – Reservierter Adressbereich: Dieser Adressbereich wird vom System verwendet oder reserviert und darf nicht in den zugeordneten Speicherpool des Arbeitsspeicher-Managers des Betriebssystems aufgenommen werden.

2 – Adressbereich ACPI: ACPI Reclaim Memory. Dieser Bereich ist verfügbarer RAM, der vom Betriebssystem verwendet werden kann, nachdem es die ACPI-Tabellen gelesen hat.

3 – Adressbereich NVS: ACPI NVS-Arbeitsspeicher. Dieser Adressbereich wird vom System verwendet oder reserviert und darf nicht vom Betriebssystem verwendet werden. Dieser Bereich muss in einem NVS-Standbymodus gespeichert und wiederhergestellt werden.

5: Übersetzung von Arbeitsspeicher zu E/A
0 – Typ statisch: Diese Ressource ist Arbeitsspeicher auf der primären und sekundären Seite der Brücke.

1 – Typübersetzung: Diese Ressource ist Arbeitsspeicher auf der sekundären Seite der Brücke und E/A auf der primären Seite der Brücke.

6 bis 7 - Reserviert
Diese Bits sind reserviert und müssen auf 0 (null) festgelegt werden.
 

E/A-Ressource (ResourceFlags = 1)

Bit(s) Bedeutung
0 bis 1 – Bereich
0 – Reserviert.

1 : Nur Nicht-ISA-Bereiche. Diese Kennzeichnung gilt für Brücken auf Systemen mit mehreren Brücken. Das Festlegen dieses Bits bedeutet, dass das in diesem Deskriptor angegebene Speicherfenster auf die Nicht-ISA-E/A-Adressen beschränkt ist, die innerhalb des angegebenen Fensters liegen. Die Nicht-ISA-E/A-Bereiche sind: n100-n3FF, n500-n7FF, n900-nBFF, nD00-nFFF. Dieses Bit kann nur für Brücken festgelegt werden, die vollständig über den ACPI-Namespace konfiguriert sind.

2 : Nur ISA-Bereiche. Diese Kennzeichnung gilt für Brücken auf Systemen mit mehreren Brücken. Das Festlegen dieses Bits bedeutet, dass das in diesem Deskriptor angegebene Speicherfenster auf die ISA-E/A-Adressen beschränkt ist, die innerhalb des angegebenen Fensters liegen. Die ISA-E/A-Bereiche sind: n000-n0FF, n400-n4FF, n800-n8FF, nC00-nCFF. Dieses Bit kann nur für Brücken festgelegt werden, die vollständig über den ACPI-Namespace konfiguriert sind.

3 – Das Speicherfenster deckt den gesamten Bereich ab.

2 bis 3 – Reserviert
Diese Bits sind reserviert und müssen auf 0 (null) festgelegt werden.
4: E/A-In-Arbeitsspeicher-Übersetzung
0 – Typ statisch: Diese Ressource ist E/A auf der primären und sekundären Seite der Brücke.

1 – Typübersetzung: Diese Ressource ist E/A auf der sekundären Seite der Brücke und Arbeitsspeicher auf der primären Seite der Brücke.

5 – Übersetzung mit geringer Dichte
Dieses Bit ist nur dann sinnvoll, wenn Bit 4 (E/A-in-Arbeitsspeicher-Übersetzung) festgelegt ist.

0 – Dichte Übersetzung: Die primäre Speicheradresse eines bestimmten E/A-Ports innerhalb des sekundären Bereichs kann mithilfe der folgenden Funktion ermittelt werden.

address = port + TranslationAddress

1 – Geringe Übersetzung: Die primäre Speicheradresse eines bestimmten E/A-Ports innerhalb des sekundären Bereichs kann mithilfe der folgenden Funktion ermittelt werden.

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

In der Adresse, die für den Zugriff auf den E/A-Port verwendet wird, müssen die Bits 2 bis 11 mit den Bits 12 bis 21 identisch sein. Dadurch werden auf jeder Seite mit 4 KB vier Bytes an E/A-Ports angegeben.

6 bis 7 - Reserviert
Diese Bits sind reserviert und müssen auf 0 (null) festgelegt werden.
 

Busnummernbereichsressource (ResourceFlags = 2)

Bit(s) Bedeutung
0 bis 7 – Reserviert
Diese Bits sind reserviert und müssen auf 0 (null) festgelegt werden.

RevisionId

Gibt die Überarbeitung des Deskriptors für erweiterten Adressraum an, der von dieser Struktur beschrieben wird. Für ACPI 3.0 ist dieser Wert 1.

Reserved

Granularity

Eine Bitmaske, die angibt, welche Bits decodiert wurden.

MinimumAddress

Die minimale Startadresse. Bei Brücken, die Adressen übersetzen, ist dies der Adressraum auf der sekundären Seite der Brücke.

MaximumAddress

Die maximale Startadresse. Bei Brücken, die Adressen übersetzen, ist dies der Adressraum auf der sekundären Seite der Brücke.

TranslationAddress

Für Brücken, die Adressen über die Brücke übersetzen, ist dies die Adresse auf der primären Seite.

AddressLength

Die Adresslänge.

TypeAttribute

Gibt Attribute an, die für den Ressourcentyp spezifisch sind, der im ResourceFlags-Element angegeben ist. Wenn ResourceFlags 0 ist, ist dieser Wert 0. Andernfalls finden Sie die Bedeutung des Werts in der UEFI-Spezifikation im Abschnitt GetMemoryMap().

DescriptorName

Der Name dieses Ressourcendeskriptors.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Wird ab Windows 10 unterstützt.
Kopfzeile pep_x.h (einschließlich Pep_x.h)