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

DxgkDdiI2CReceiveDataFromDisplay は、モニター内の I2C デバイスから受信したデータを返します。

構文

DXGKDDI_I2C_RECEIVE_DATA_FROM_DISPLAY DxgkddiI2cReceiveDataFromDisplay;

NTSTATUS DxgkddiI2cReceiveDataFromDisplay(
  [in]  PVOID MiniportDeviceContext,
  [in]  D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId,
  [in]  ULONG SevenBitI2CAddress,
  [in]  ULONG Flags,
  [in]  ULONG DataLength,
  [out] PVOID Data
)
{...}

パラメーター

[in] MiniportDeviceContext

ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 ディスプレイ ミニポート ドライバーの DxgkDdiAddDevice 関数は、以前は Microsoft DirectX グラフィックス カーネル サブシステムにこのハンドルを提供しました。

[in] VidPnTargetId

ディスプレイ アダプター上のビデオの存在ターゲットの 1 つを識別する整数。

[in] SevenBitI2CAddress

データの受信元となる I2C デバイスのアドレス。

[in] Flags

I2C デバイスによって送信されるデータの一部としてデータの長さを指定するかどうかを示す 値。 このパラメーターは、次のいずれかの値に設定する必要があります。

意味
I2C_NO_FLAGS データの長さは DataLength パラメーターによって指定されます。 I2C デバイスは、送信するデータの一部としてデータ長を提供しません。
I2C_DEVICE_TRANSMITS_DATA_LENGTH データ長は、I2C デバイスが送信するデータの一部として提供されます。 I2C デバイスは、少なくとも 2 バイトを送信します。 送信される 2 番目のバイトの 7 つの最下位ビットには、中間長が含まれます。 中間長を含むバイトの後に送信されるバイト数を計算するには、中間長に 1 つを追加します。

[in] DataLength

Data が指すバッファーの長さ (バイト単位)。

[out] Data

データを受信するバッファーへのポインター。 バッファーは、ページングされたメモリに格納できます。

戻り値

DxgkDdiI2CReceiveDataFromDisplayは、成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合は、 Ntstatus.h で定義されているエラー コードのいずれかを返します。 次の一覧では、返される可能性のあるエラー コードの一部を示します。

リターン コード 説明
STATUS_GRAPHICS_MONITOR_NOT_CONNECTED VidPnTargetId によって識別されるビデオ出力に接続されているモニターはありません。
STATUS_GRAPHICS_I2C_NOT_SUPPORTED VidPnTargetId によって識別されるビデオ出力には、I2C バスがありません。
STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST SevenBitI2CAddress で指定された I2C アドレスを確認したデバイスはありません。 これは、I2C バス上のデバイスに指定されたアドレスがない、またはアドレスが送信されたときにエラーが発生したことを意味する可能性があります。
STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA I2C アドレスは正常に送信されましたが、I2C デバイスからデータを受信中にエラーが発生しました。
STATUS_BUFFER_TOO_SMALL DataLength で指定された値が、必要なデータ バッファー サイズより小さくなります。 この戻り値は、I2C_DEVICE_TRANSMITS_DATA_LENGTH フラグが設定されている場合にのみ意味があります。

注釈

VidPnTargetId によって識別されるビデオの現在のターゲットは、ディスプレイ アダプターのビデオ出力のいずれかに関連付けられています。 データは、そのビデオ出力に接続されているモニターの I2C デバイスから受信されます。

DxgkDdiI2CReceiveDataFromDisplay 関数は、I2C 開始条件の通知、I2C アドレスの送信、I2C デバイスからのデータの受信、受信確認の送信、停止条件の通知を行います。 I2C バスの詳細については、Philips Semiconductors によって公開されている I2C バス仕様に関するページを参照してください。 この仕様では、I2C 通信の開始、I2C データ行でのバイトの読み取りと書き込み、および I2C 通信の終了を行うプロトコルが定義されています。 (このリソースは、一部の言語では使用できない場合があります

国など)

DxgkDdiI2CReceiveDataFromDisplayは、アドレスが0x6Fされているが、異なるアドレスを持つ I2C デバイスからのデータの受信を拒否できる I2C デバイスからデータを受信するために必要です。

DxgkDdiI2CReceiveDataFromDisplay は、ディスプレイ ミニポート ドライバーまたはグラフィックス ハードウェアの別の部分が指定されたモニターの I2C バスを使用している場合にブロックできます。 また、ディスプレイ ミニポート ドライバーが I2C バスを使用して高帯域幅デジタル コンテンツ保護 (HDCP) データを送受信している場合は、ブロックすることもできます。

ディスプレイ アダプターが HDCP をサポートしている場合、デバイスに HDCP で使用される I2C アドレスがある場合、 DxgkDdiI2CReceiveDataFromDisplay は I2C デバイスからのデータの受信を拒否する必要があります。

DxgkDdiI2CReceiveDataFromDisplay は、ディスプレイ アダプター上の I2C デバイスからデータを受信してはなりません。 つまり、この関数は、ディスプレイ アダプターに接続されているモニター内の I2C デバイスからデータを受信できますが、ディスプレイ アダプター自体にある I2C デバイスからデータを受信することはできません。

DxgkDdiI2CReceiveDataFromDisplay をページング可能にする必要があります。

要件

要件
サポートされている最小のクライアント Windows Vista
対象プラットフォーム デスクトップ
Header dispmprt.h (Dispmprt.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

DxgkDdiI2CTransmitDataToDisplay