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 之间(包括 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 Semiconductors 发布的 I2C 总线规范。 该规范定义了用于启动 I2C 通信、通过 I2C 数据线读取和写入字节以及终止 I2C 通信的协议。

DxgkDdiI2CTransmitDataToDisplay 需要将数据传输到地址0x6E但允许拒绝将数据传输到具有不同地址的任何 I2C 设备的 I2C 设备。

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

如果显示适配器支持 HDCP,则如果设备具有 HDCP 使用的 I2C 地址, 则 DxgkDdiI2CTransmitDataToDisplay 函数必须拒绝将数据发送到 I2C 设备。

DxgkDdiI2CTransmitDataToDisplay 不得将数据传输到显示适配器上的 I2C 设备。 也就是说,此函数可以将数据传输到连接到显示适配器的监视器中的 I2C 设备,但不能传输到显示适配器本身上的 I2C 设备。

DxgkDdiI2CTransmitDataToDisplay 应设为可分页。

要求

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

另请参阅

DxgkDdiAddDevice

DxgkDdiI2CReceiveDataFromDisplay