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 対応コネクタのインデックス値。 ドライバーは、以前の呼び出しで GPU 上の DP 対応コネクタの合計数 を返DXGKDDI_QUERYDPCAPS。 DXGKDDI_DPI2CIOTRANSMISSIONへの後続の呼び出しは、RootPortIndex が 0 から NumRootPorts - 1 までの 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 に E-DDC デバイスがあります (EDID の場合は0xA0、DisplayID の場合は 0xA4)。 この場合、ドライバーは SegmentPointer を I2C アドレス 0x60に書き込み、 WordOffset を I2CAddress に書き込み、IO 操作を実行する必要があります。 他のすべての I2C デバイスでは、ドライバーは OffsetSizeInBytes に従って Offset のバイトを書き込む必要があります。
エラーが発生した場合、ドライバーは BytesWritten と BytesRead を 可能な限り正確に返す必要があります。
Windows 10 バージョン 2004 では、0x6Eの MCCS I2C アドレスに対してのみ書き込み操作が許可されます。 アクセス制御が追加されると、その他のすべての操作は、後の OS リリースまでブロックされます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 バージョン 2004 |
Header | dispmprt.h |