次の方法で共有


DXGKDDI_DPI2CIOTRANSMISSIONコールバック関数 (dispmprt.h)

DXGKDDI_DPI2CIOTRANSMISSION コールバックは、GPU に直接接続されているデバイスで AUX 読み取り/書き込み操作を介して DP I2C を実行します。

構文

DXGKDDI_DPI2CIOTRANSMISSION DxgkddiDpi2ciotransmission;

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

パラメーター

Context

インターフェイスに対してクエリを実行するときに提供されるコンテキスト ポインター。

pArgs

DXGKARG_DPI2CIOTRANSMISSION構造体へのポインター。

戻り値

DXGKDDI_DPI2CIOTRANSMISSION成功 した場合、STATUS_SUCCESSを返します。それ以外の場合は、次のいずれかのエラー コードが返されます。

エラー コード 意味
STATUS_DRIVER_INTERNAL_ERROR 内部ソフトウェア エラーが発生しました。
STATUS_ACCESS_DENIED 要求はサポートされていません。 バージョン 2004 Windows 10では、AUX 読み取りを介した I2C のみがサポートされます。
STATUS_BUFFER_TOO_SMALL バッファーが操作に対して小さすぎます。
STATUS_DEVICE_HARDWARE_ERROR ハードウェア エラーが発生しました。
STATUS_DEVICE_POWERED_OFF デバイスの電源がオフになっています。
STATUS_DEVICE_NOT_CONNECTED デバイスが接続されていません。
STATUS_DEVICE_PROTOCOL_ERROR AUX プロトコル レベル経由の I2C でエラーが発生しました。 ドライバーは DPNativeError を 使用して、エラーの詳細をエンコードできます。

注釈

この DDI 呼び出しは、GPU に直接接続されているデバイスで AUX 読み取り/書き込みを介して DP I2C を実行するために使用されます。

I2C の場合、pArgs が指すDXGKARG_DPI2CIOTRANSMISSION構造体内のデータ バッファーの最大サイズは 128 バイトです。 MCCS およびその他のプロトコルでは、1 つのバス トランザクション/サイクルで読み取り操作の前に書き込み操作を組み合わせることがサポートされています。 データ バッファーのサイズは BufferSizeSupplied で、BytesToWriteBytesToRead の大きい値以上にする必要があります。

オフセット は、デバイス内の IO のアドレスです。 EDDCMode を設定すると、I2CAddress に E-DDC デバイスがあります (EDID の場合は0xA0、DisplayID の場合は 0xA4)。 ドライバーは 、SegmentPointer を I2C アドレス 0x60に書き込み、 WordOffsetI2CAddress に書き込み、IO 操作を実行する必要があります。 他のすべての I2C デバイスでは、ドライバーは OffsetSizeInBytes に従って Offset のバイトを書き込む必要があります。

エラーが発生した場合、ドライバーは BytesWrittenBytesRead を 可能な限り正確に返す必要があります。

バージョン 2004 Windows 10の場合、書き込み操作は0x6Eの MCCS I2C アドレスに対してのみ許可されます。 アクセス制御が追加されると、その他のすべての操作は、後の OS リリースまでブロックされます。

要件

要件
サポートされている最小のクライアント Windows 10 バージョン 2004
Header dispmprt.h

こちらもご覧ください

DXGKARG_DPI2CIOTRANSMISSION