Freigeben über


PNP_SERIAL_BUS_DESCRIPTOR-Struktur (reshub.h)

Die PNP_SERIAL_BUS_DESCRIPTOR-Struktur beschreibt die physische Verbindung eines Zielgeräts mit einem seriellen Bus (I2C, SPI oder UART).

Syntax

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;

Member

Tag

Der serielle Bustyp. Dieses Element ist auf 0x8e für eine serielle Busverbindung (I2C, SPI oder UART) festgelegt. Weitere Informationen finden Sie in der Beschreibung des Seriellen Busverbindungsdeskriptors in der ACPI 5.0-Spezifikation.

Length

Die Länge des Seriellen Busverbindungsdeskriptors in Bytes. Um mit der ACPI 5.0-Spezifikation konsistent zu sein, entspricht die Byteanzahl im Length-Member der PNP_SERIAL_BUS_DESCRIPTOR Struktur der Strukturgröße, abzüglich der drei Bytes in den Elementen Tag und Length am Anfang der Struktur sowie der Anzahl der Bytes der bustypspezifischen Daten und der Ressourcenquellenzeichenfolge, die der Struktur folgen. Die Ressourcenquelle-Zeichenfolge, die ein erforderliches Feld ist, hat eine Mindestgröße von zwei Bytes (für einen einstelligen Ressourcenquellennamen und einen endenden NULL-Wert). Daher ist der minimale gültige Längenwert 11. Weitere Informationen finden Sie in der ACPI 5.0-Spezifikation.

RevisionId

Die Revisions-ID des Seriellen Busverbindungsdeskriptors. Dieser Member ist auf die SERIAL_BUS_DESCRIPTOR_REVISION-Konstante festgelegt, die in der Reshub.h-Headerdatei definiert ist.

ResourceSourceIndex

Für die zukünftige Verwendung reserviert. Dieser Member ist nicht verwendet und auf Null festgelegt.

SerialBusType

Der serielle Bustyp. Dieses Element ist auf 1 (für I2C), 2 (für SPI) oder 3 (für UART) festgelegt. Andere Werte sind entweder für die zukünftige Verwendung reserviert oder werden vom Hardwarehersteller definiert. Weitere Informationen finden Sie in der ACPI 5.0-Spezifikation.

GeneralFlags

Flags, die allen seriellen Bustypen gemeinsam sind. Bit 0 ist das Flag im untergeordneten Modus. Wenn dieses Bit auf 1 festgelegt ist, wird die Kommunikation dieser Verbindung vom Buscontroller initiiert. andernfalls wird die Kommunikation vom Zielgerät initiiert. Bit 1 ist das Consumer/Producer-Flag und ist immer auf 1 festgelegt. Derzeit sind keine anderen Flagbits definiert. Weitere Informationen finden Sie in der ACPI 5.0-Spezifikation.

TypeSpecificFlags

Flags, die für den seriellen Bustyp spezifisch sind. Für einen I2C-Bus wird Bit 0 festgelegt, wenn die Verbindung 10-Bit-Adressen verwendet. Andernfalls verwendet die Verbindung 7-Bit-Adressen. Für I2C sind derzeit keine anderen Flagbits definiert. Weitere Informationen finden Sie in der ACPI 5.0-Spezifikation.

TypeSpecificRevisionId

Die Revisions-ID der Variante dieser Struktur, die für den vom Tag-Member angegebenen seriellen Bustyp (I2C, SPI und UART) verwendet wird. Jeder serielle Bustyp erweitert die PNP_SERIAL_BUS_DESCRIPTOR-Struktur , indem felder hinzugefügt werden, die für den Bustyp spezifisch sind. Weitere Informationen finden Sie in der ACPI 5.0-Spezifikation.

TypeDataLength

Die Länge der bustypspezifischen Daten in Bytes, die der PNP_SERIAL_BUS_DESCRIPTOR Struktur folgen. Dieser Längenwert enthält die Daten zwischen dem Ende des TypeDataLength-Members und dem Anfang der Ressourcenquelle-Zeichenfolge, enthält jedoch nicht die Ressourcenquelle-Zeichenfolge. Weitere Informationen finden Sie in der ACPI 5.0-Spezifikation.

Hinweise

Diese Struktur definiert die Datenfelder in einem seriellen Busverbindungsdeskriptor, wie in Abschnitt 6.4.3.8.2 der ACPI 5.0-Spezifikation beschrieben. Dieser Deskriptor beschreibt die Busverbindung mit einem Zielgerät, das mit einem seriellen Bus (I2C, SPI oder UART) verbunden ist.

Für ein Gerät auf einem I2C-Bus gibt beispielsweise die PNP_SERIAL_BUS_DESCRIPTOR-Struktur (und deren bustypspezifische Erweiterung) die Busadresse des Geräts, den Adressmodus (7 Bit oder 10 Bit) und die Häufigkeit an, mit der die Busuhr ausgeführt werden soll, wenn auf das Gerät zugegriffen wird. Ein Codebeispiel, das zeigt, wie ein I2C-Controllertreiber diese Informationen aus der Struktur extrahiert, finden Sie unter Abrufen der Verbindungseinstellungen für ein Gerät.

Der PNP_SERIAL_BUS_DESCRIPTOR-Strukturdefinition in der Headerdatei Reshub.h ist eine include-Anweisung für die Headerdatei Pshpack1.h vorangestellt, die den Compiler so konfiguriert, dass benachbarte Strukturmember ohne zwischengeschaltete Lücken in Bytegrenzen verpackt werden. Software kann dann die gepackte Struktur über das Speicherbild des seriellen Busverbindungsdeskriptors überlagern, um auf die einzelnen Felder dieses Deskriptors zuzugreifen. Die USHORT-Elemente der Struktur werden möglicherweise nicht an Bytegrenzen im Arbeitsspeicher ausgerichtet. Die Bytes in den USHORT-Membern werden in little-endian-Reihenfolge für die x86-, x64- und ARM-Prozessorarchitekturen gespeichert.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Wird ab Windows 8 unterstützt.
Kopfzeile reshub.h