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

一个整数,用于标识显示适配器上存在的视频目标之一。

[in] SevenBitI2CAddress

从中接收数据的 I2C 设备的地址。

[in] Flags

一个值,该值指定数据长度是否作为 I2C 设备传输的数据的一部分提供。 此参数必须设置为以下值之一。

价值 意义
I2C_NO_FLAGS 数据长度由 DataLength 参数提供。 I2C 设备不会在传输的数据中提供数据长度。
I2C_DEVICE_TRANSMITS_DATA_LENGTH 数据长度由 I2C 设备提供,作为它传输的数据的一部分。 I2C 设备至少传输两个字节。 传输的第二个字节的七个最小有效位包含中间长度。 通过将一个字节添加到中间长度,可以计算在包含中间长度的字节之后传输的字节数。

[in] DataLength

数据指向的缓冲区的长度(以字节为单位)。

[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 半导体发布的 I2C 总线规范。 该规范定义了一个协议,用于通过 I2C 数据行启动 I2C 通信、读取和写入字节以及终止 I2C 通信。 (此资源可能在某些语言中不可用

和国家/地区。

需要 DxgkDdiI2CReceiveDataFromDisplay才能从具有地址0x6F但允许从具有不同地址的任何 I2C 设备接收数据。

如果显示微型端口驱动程序或图形硬件的另一部分使用指定的监视器的 I2C 总线,则允许 DxgkDdiI2CReceiveDataFromDisplay 阻止。 如果显示微型端口驱动程序使用 I2C 总线发送或接收高带宽数字内容保护(HDCP)数据,也允许阻止它。

如果显示适配器支持 HDCP,DxgkDdiI2CReceiveDataFromDisplay 如果设备具有 HDCP 使用的 I2C 地址,则必须拒绝从 I2C 设备接收数据。

DxgkDdiI2CReceiveDataFromDisplay 绝不能从显示适配器上的 I2C 设备接收数据。 也就是说,此函数可以从连接到显示适配器的监视器中的 I2C 设备接收数据,但不能从显示适配器本身上的 I2C 设备接收数据。

DxgkDdiI2CReceiveDataFromDisplay 应设为可分页。

要求

要求 价值
最低支持的客户端 Windows Vista
目标平台 桌面
标头 dispmprt.h (包括 Dispmprt.h)
IRQL PASSIVE_LEVEL

另请参阅

DxgkDdiI2CTransmitDataToDisplay