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 |