Freigeben über


PEP_ACPI_EXTENDED_ADDRESS-Struktur (pepfx.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 Ressourcentyp an, den diese Struktur beschreibt.

Wert Bedeutung
0
Gibt an, dass es sich bei dieser Ressource um einen Speicherbereich handelt.
1
Gibt an, dass es sich bei dieser Ressource um einen E/A-Bereich handelt.
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 : Flag "Consumer/Producer"
Wenn festgelegt, gibt dies an, dass das Gerät diese Ressource nutzt.
1 : Decodierungstyp
Wenn festgelegt, gibt an, dass diese Brücke die Adresse subtraktiv dekodiert. Dies gilt nur für Brücken auf oberster Ebene.

Gibt an, dass diese Brücke diese Adresse positiv entschlüsselt, wenn sie nicht festgelegt ist.

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

TypeSpecificFlags

Der Wert dieses Members ist vom Wert im ResourceFlags-Member abhängig. Die Flags für jeden Ressourcentyp werden in den folgenden Tabellen beschrieben.

Arbeitsspeicherressource (ResourceFlags = 0)

Bit(s) Bedeutung
0 : Schreibvorgang status
Wenn festgelegt, gibt an, dass dieser Speicherbereich zum Lesen und Schreiben verfügbar ist. Andernfalls bedeutet dies, 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 schreibkombiniert wird.

3 : Der Arbeitsspeicher kann zwischengespeichert und vorverfügbar sein.

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

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

1 - Adressbereich reserviert: Dieser Adressbereich wird vom System verwendet oder reserviert und darf nicht in den allocatable-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 er die ACPI-Tabellen gelesen hat.

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

5 : Speicher-in-E/A-Übersetzung
0 – Typstatig: 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 festgelegt werden.
 

E/A-Ressource (ResourceFlags = 1)

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

1 : Nur Nicht-ISA-Bereiche. Dieses Flag 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. Dieses Flag 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 festgelegt werden.
4 : E/A-in-Speicherübersetzung
0 – Typstattisch: 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 – Spärseübersetzung
Dieses Bit ist nur dann sinnvoll, wenn Bit 4 (E/A in Speicherü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 gefunden werden.

address = port + TranslationAddress

1 – Spärseü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. Dies ergibt vier Bytes von E/A-Ports auf jeder 4-KB-Seite.

6 bis 7 – Reserviert
Diese Bits sind reserviert und müssen auf 0 festgelegt werden.
 

Busnummernbereichsressource (ResourceFlags = 2)

Bit(s) Bedeutung
0 bis 7 – Reserviert
Diese Bits sind reserviert und müssen auf 0 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 pepfx.h (einschließlich Pep_x.h)