Freigeben über


DXGKDDI_DPI2CIOTRANSMISSION Rückruffunktion (dispmprt.h)

Der DXGKDDI_DPI2CIOTRANSMISSION Rückruf führt DP I2C-Über-AUX-Lese-/Schreibvorgänge auf Geräten aus, die direkt an die GPU angeschlossen sind.

Syntax

DXGKDDI_DPI2CIOTRANSMISSION DxgkddiDpi2ciotransmission;

NTSTATUS DxgkddiDpi2ciotransmission(
  HANDLE Context,
  PDXGKARG_DPI2CIOTRANSMISSION pArgs
)
{...}

Parameter

Context

Kontextzeiger, der beim Abfragen der Schnittstelle bereitgestellt wird.

pArgs

Zeiger auf eine DXGKARG_DPI2CIOTRANSMISSION-Struktur .

Rückgabewert

DXGKDDI_DPI2CIOTRANSMISSION gibt bei Erfolg STATUS_SUCCESS zurück. Andernfalls wird ein Fehlercode zurückgegeben, z. B. einer der folgenden:

Fehlercode Bedeutung
STATUS_DRIVER_INTERNAL_ERROR Interner Softwarefehler.
STATUS_ACCESS_DENIED Die Anforderung wird nicht unterstützt. Für Windows 10 Version 2004 wird nur das Lesen von I2C über AUX unterstützt.
STATUS_BUFFER_TOO_SMALL Der Puffer ist für den Vorgang zu klein.
STATUS_DEVICE_HARDWARE_ERROR Ein Hardwarefehler ist aufgetreten.
STATUS_DEVICE_POWERED_OFF Das Gerät ist ausgeschaltet.
STATUS_DEVICE_NOT_CONNECTED Das Gerät ist nicht verbunden
STATUS_DEVICE_PROTOCOL_ERROR Ein Fehler ist auf der Protokollebene I2C über AUX aufgetreten. Der Treiber kann DPNativeError verwenden, um weitere Details zum Fehler zu codieren.

Hinweise

Dieser DDI-Aufruf wird verwendet, um DP I2C über AUX-Lese-/Schreibzugriff auf Geräten auszuführen, die direkt an die GPU angeschlossen sind.

Für I2C beträgt die maximale Größe des Datenpuffers in der DXGKARG_DPI2CIOTRANSMISSION Struktur, auf die von pArgs verwiesen wird, 128 Bytes. Das Kombinieren eines Schreibvorgangs vor einem Lesevorgang in einer einzelnen Bustransaktion/einem einzelnen Buszyklus wird für MCCS und andere Protokolle unterstützt. Der Datenpuffer hat die Größe BufferSizeSupplied, die größer oder gleich dem größeren Wert von BytesToWrite und BytesToRead sein sollte.

Offset ist die Adresse für E/A innerhalb des Geräts. Wenn EDDCMode festgelegt ist, gibt es E-DDC-Geräte unter I2CAddress (0xA0 für EDID, 0xA4 für DisplayID). Der Treiber sollte SegmentPointer in die I2C-Adresse schreiben 0x60, WordOffset in I2CAddress 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 der Schreibvorgang nur für MCCS I2C-Adressen von 0x6E zulässig. Alle anderen Vorgänge werden bis zu einer späteren Betriebssystemfreigabe blockiert, wenn die Zugriffssteuerung hinzugefügt wird.

Anforderungen

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

Weitere Informationen

DXGKARG_DPI2CIOTRANSMISSION