DXGKDDI_I2C_TRANSMIT_DATA_TO_DISPLAY回调函数 (dispmprt.h)
DXGKDDI_I2C_TRANSMIT_DATA_TO_DISPLAY 回调函数将数据传输到监视器中的 I2C 设备。
语法
DXGKDDI_I2C_TRANSMIT_DATA_TO_DISPLAY DxgkddiI2cTransmitDataToDisplay;
NTSTATUS DxgkddiI2cTransmitDataToDisplay(
[in] PVOID MiniportDeviceContext,
[in] D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId,
[in] ULONG SevenBitI2CAddress,
[in] ULONG DataLength,
[in] const VOID *Data
)
{...}
参数
[in] MiniportDeviceContext
与显示适配器关联的上下文块的句柄。 显示微型端口驱动程序的 DxgkDdiAddDevice 函数以前向 Microsoft DirectX 图形内核子系统提供了此句柄。
[in] VidPnTargetId
一个整数,用于标识显示适配器上存在的视频目标之一。
[in] SevenBitI2CAddress
要向其传输数据的 I2C 设备的地址。
[in] DataLength
要传输的数据的长度(以字节为单位)。 此参数必须介于 1 和 64 之间(含)。
[in] Data
指向保存要传输数据的缓冲区的指针。
返回值
如果成功,DXGKDDI_I2C_TRANSMIT_DATA_TO_DISPLAY 将返回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_TRANSMITTING_DATA | I2C 地址已成功传输,但向 I2C 设备传输数据时出错。 |
言论
VidPnTargetId 标识的视频演示目标与显示适配器上的某个视频输出相关联。 数据将传输到连接到该视频输出的监视器中的 I2C 设备。
DxgkDdiI2CTransmitDataToDisplay 负责向 I2C 启动条件发出信号、发送 I2C 地址、发送缓冲区中的数据、检查接收方确认以及发出停止条件信号。 有关 I2C 总线的详细信息,请参阅 Philips 半导体发布的 I2C 总线规范。 该规范定义了一个协议,用于通过 I2C 数据行启动 I2C 通信、读取和写入字节以及终止 I2C 通信。
DxgkDdiI2CTransmitDataToDisplay 需要将数据传输到具有地址0x6E但允许将数据传输到具有不同地址的任何 I2C 设备。
如果显示微型端口驱动程序或图形硬件的另一部分使用指定的监视器的 I2C 总线,则允许 DxgkDdiI2CTransmitDataToDisplay。 如果显示微型端口驱动程序使用 I2C 总线发送或接收高带宽数字内容保护(HDCP)数据,也允许阻止它。
如果显示适配器支持 HDCP,则如果设备具有 HDCP 使用的 I2C 地址,DxgkDdiI2CTransmitDataToDisplay 函数必须拒绝将数据发送到 I2C 设备。
DxgkDdiI2CTransmitDataToDisplay 绝不能将数据传输到显示适配器上的 I2C 设备。 也就是说,此函数可以将数据传输到连接到显示适配器的监视器中的 I2C 设备,但不能传输到显示适配器本身上的 I2C 设备。
DxgkDdiI2CTransmitDataToDisplay 应设为可分页。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista |
目标平台 | 桌面 |
标头 | dispmprt.h (包括 Dispmprt.h) |
IRQL | PASSIVE_LEVEL |