次の方法で共有


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 をサポートしている場合、DxgkDdiI2CReceiveDataFromDisplay 、デバイスに HDCP で使用される I2C アドレスがある場合、I2C デバイスからのデータの受信を拒否する必要があります。

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

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

必要条件

要件 価値
サポートされる最小クライアント Windows Vista
ターゲット プラットフォーム デスクトップ
ヘッダー dispmprt.h (Dispmprt.h を含む)
IRQL PASSIVE_LEVEL

関連項目

DxgkDdiI2CTransmitDataToDisplay