DXGKARG_DPI2CIOTRANSMISSION構造体 (dispmprt.h)
DXGKARG_DPI2CIOTRANSMISSION 構造体は、DXGKDDI_DPI2CIOTRANSMISSION コールバックのパラメーターです。
構文
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;
メンバーズ
Read
設定した場合は、AUX 読み取り操作で DP I2C を実行します。
Write
設定した場合は、AUX 書き込み操作で DP I2C を実行します。
EDDCMode
設定した場合、I2CAddress のデバイスは拡張ディスプレイ データ チャネル (E-DDC) になります。
OffsetSizeInBytes
オフセットからのオフセット サイズ (バイト単位)。E-DDC 以外のデバイスのデータを書き込みます。
CanUseCachedData
設定されている場合、ドライバーはキャッシュされたデータを使用できます。
Reserved
引っ込み思案;使用しないでください。
RootPortIndex
AUX 読み取りまたは書き込み操作で DP I2C を実行する DP 対応コネクタのインデックス値。 ドライバーは、DXGKDDI_QUERYDPCAPSの前の呼び出しで GPU 上の DP 対応コネクタの合計数を返しました。 DXGKDDI_DPI2CIOTRANSMISSION に対する後続の呼び出しは、0 から NumRootPorts - 1までの範囲の RootPortIndex を持つ DP コネクタを参照します。
I2CAddress
I2C アドレス。 EDID の場合は0xA0、DisplayID の場合は0xA4に設定します。
WordOffset
Word オフセット (バイト単位)。
SegmentPointer
EDDCMode 設定すると、ドライバーは、SegmentPointer を I2C アドレス 0x60に書き込む必要があります。 SegmentPointer は、E-DDC デバイスに対してアクセスされる 256 バイトのデータ ブロックを識別します。
Reserved1
引っ込み思案;使用しないでください。
Offset
デバイス内の IO のアドレス。
BufferSizeSupplied
データ バッファーのサイズ (バイト単位)。 BufferSizeSupplied は、BytesToWrite と BytesToWrite 以上である必要があります。
BytesToWrite
書き込み操作で書き込むバイト数。
BytesToRead
読み取り操作で読み取るバイト数。
DPNativeError
ドライバーが DXGKDDI_DPI2CIOTRANSMISSIONからSTATUS_DEVICE_PROTOCOL_ERRORを返すときにエラーの詳細をエンコードできるフィールド。
BytesWritten
書き込まれたバイト数。 ドライバーは、障害が発生した場合に可能な限り正確にこの値を返す必要があります。
BytesRead
読み取られたバイト数。 ドライバーは、障害が発生した場合に可能な限り正確にこの値を返す必要があります。
Data[1]
書き込み操作用に書き込むデータ、または読み取り操作のデータを受信するデータを格納するバッファー。
備考
EDDCMode 設定すると、ドライバーは、WordOffset を OffsetSizeInBytes 書き込む必要があります。
EDDCMode 設定すると、I2CAddress (EDID の場合は0xA0、DisplayID の場合は 0xA4) に E-DDC デバイスが存在します。 このような状況では、ドライバーは、SegmentPointer を I2C アドレス 0x60に書き込み、I2CAddressに WordOffset を してから、IO 操作を実行する必要があります。 他のすべての I2C デバイスの場合、ドライバーは OffsetSizeInBytes に従って Offset のバイト書き込む必要があります。
エラーが発生した場合、ドライバーは BytesWritten 返し、BytesRead を可能な限り正確に する必要があります。
Windows 10 バージョン 2004 では、0x6Eの MCCS I2C アドレスに対してのみ書き込み操作が許可されます。 他のすべての操作は、アクセス制御が追加されたときに、後で OS がリリースされるまでブロックされます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 10 バージョン 2004 |
ヘッダー | dispmprt.h |