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 |