DXGKARG_DPI2CIOTRANSMISSION-Struktur (dispmprt.h)

Die DXGKARG_DPI2CIOTRANSMISSION-Struktur ist ein Parameter für den DXGKDDI_DPI2CIOTRANSMISSION Rückruf.

Syntax

typedef struct _DXGKARG_DPI2CIOTRANSMISSION {
  struct {
    UINT Read : 1;
    UINT Write : 1;
    UINT EDDCMode : 1;
    UINT OffsetSizeInBytes : 3;
    UINT CanUseCachedData : 1;
    UINT Reserved : 25;
  };
  UINT   RootPortIndex;
  UINT   I2CAddress;
  union {
    struct {
      UINT WordOffset : 8;
      UINT SegmentPointer : 7;
      UINT Reserved1 : 17;
    };
    UINT Offset;
  };
  UINT   BufferSizeSupplied;
  UINT   BytesToWrite;
  UINT   BytesToRead;
  UINT   DPNativeError;
  UINT   BytesWritten;
  UINT   BytesRead;
  BYTE   Data[1];
} DXGKARG_DPI2CIOTRANSMISSION, *PDXGKARG_DPI2CIOTRANSMISSION;

Member

Read

Wenn festgelegt, führen Sie einen DP I2C-Lesevorgang über AUX aus.

Write

Wenn festgelegt, führen Sie einen DP I2C-Schreibvorgang über AUX aus.

EDDCMode

Wenn festgelegt, ist das Gerät bei I2CAddress der erweiterte Anzeigedatenkanal (Enhanced Display Data Channel, E-DDC).

OffsetSizeInBytes

Offsetgröße von Offset in Bytes, mit der Daten für Nicht-E-DDC-Geräte geschrieben werden sollen.

CanUseCachedData

Wenn festgelegt, kann der Treiber zwischengespeicherte Daten verwenden.

Reserved

Reserviert; nicht verwenden.

RootPortIndex

Indexwert des DP-fähigen Connectors, für den der DP-I2C-Lese- oder Schreibvorgang ausgeführt werden soll. Der Treiber hat die Gesamtzahl der DP-fähigen Connectors auf der GPU in einem vorherigen Aufruf von DXGKDDI_QUERYDPCAPS zurückgegeben. Nachfolgende Aufrufe von DXGKDDI_DPI2CIOTRANSMISSION beziehen sich auf die DP-Connectors mit RootPortIndex im Bereich von 0 bis NumRootPorts - 1.

I2CAddress

I2C-Adresse. Legen Sie für EDID auf 0xA0 oder 0xA4 für DisplayID fest.

WordOffset

Word Offset in Bytes.

SegmentPointer

Wenn EDDCMode festgelegt ist, sollte der Treiber SegmentPointer in die I2C-Adresse schreiben, 0x60. SegmentPointer identifiziert den 256-Byte-Datenblock, auf den für E-DDC-Geräte zugegriffen wird.

Reserved1

Reserviert; nicht verwenden.

Offset

Adresse für E/A innerhalb des Geräts.

BufferSizeSupplied

Größe des Datenpuffers in Bytes. BufferSizeSupplied sollte größer oder gleich der größe von BytesToWrite und BytesToWrite sein.

BytesToWrite

Anzahl der Bytes, die für einen Schreibvorgang geschrieben werden sollen.

BytesToRead

Anzahl der Bytes, die für einen Lesevorgang gelesen werden sollen.

DPNativeError

Feld, in dem der Treiber weitere Details zum Fehler codieren kann, wenn STATUS_DEVICE_PROTOCOL_ERROR von DXGKDDI_DPI2CIOTRANSMISSION zurückgegeben wird.

BytesWritten

Anzahl der geschriebenen Bytes. Der Treiber sollte diesen Wert im Falle eines Fehlers so genau wie möglich zurückgeben.

BytesRead

Anzahl der gelesenen Bytes. Der Treiber sollte diesen Wert im Falle eines Fehlers so genau wie möglich zurückgeben.

Data[1]

Puffer, der die Daten enthält, die für einen Schreibvorgang geschrieben werden sollen, und/oder in dem die Daten für einen Lesevorgang empfangen werden sollen.

Hinweise

Wenn EDDCMode festgelegt ist, sollte der Treiber WordOffset in OffsetSizeInBytes schreiben.

Wenn EDDCMode festgelegt ist, gibt es E-DDC-Geräte unter I2CAddress (0xA0 für EDID, 0xA4 für DisplayID). In diesem Fall sollte der Treiber SegmentPointer in die I2C-Adresse 0x60, WordOffset in I2CAddress schreiben und dann den E/A-Vorgang ausführen. Für alle anderen I2C-Geräte sollte der Treiber Bytes von Offset gemäß OffsetSizeInBytes schreiben.

Im Falle eines Fehlers sollte der Treiber BytesWritten und BytesRead so genau wie möglich zurückgeben.

Für Windows 10 Version 2004 ist ein Schreibvorgang nur für die MCCS I2C-Adresse von 0x6E zulässig. Alle anderen Vorgänge werden bis zu einer späteren Betriebssystemversion blockiert, wenn die Zugriffssteuerung hinzugefügt wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 2004
Kopfzeile dispmprt.h

Weitere Informationen

DXGKDDI_DPI2CIOTRANSMISSION

DXGKDDI_QUERYDPCAPS