Поделиться через


функция обратного вызова 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

Длина (в байтах) буфера, на который указывает 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 Ни на каких устройствах не подтвержден адрес I2C, указанный в SevenBitI2CAddress. Это может означать, что ни у устройства на шине 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 см. в спецификации шины I2C, опубликованной Philips Semiconductors. Спецификация определяет протокол для инициации обмена данными по протоколу I2C, чтения и записи байтов через линию данных I2C, а также для прекращения обмена данными I2C. (Этот ресурс может быть недоступен на некоторых языках.

и страны.)

DxgkDdiI2CReceiveDataFromDisplayтребуется для получения данных с устройства I2C, которое имеет адрес 0x6F но может отказаться от получения данных с любого устройства I2C с другим адресом.

DxgkDdiI2CReceiveDataFromDisplay может блокироваться, если другая часть драйвера мини-порта дисплея или графического оборудования использует шину I2C указанного монитора. Кроме того, разрешено блокировать, если драйвер мини-порта дисплея использует шину I2C для отправки или получения данных защиты от цифрового содержимого с высокой пропускной способностью (HDCP).

Если видеоадаптер поддерживает HDCP, DxgkDdiI2CReceiveDataFromDisplay должен отказаться от получения данных с устройства I2C, если устройство имеет I2C-адрес, используемый HDCP.

DxgkDdiI2CReceiveDataFromDisplay никогда не должен получать данные с устройства I2C на адаптере дисплея. То есть эта функция может получать данные от устройства I2C на мониторе, подключенном к адаптеру дисплея, но не от устройства I2C, на котором находится сам видеоадаптер.

DxgkDdiI2CReceiveDataFromDisplay должен быть доступным для страниц.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Целевая платформа Персональный компьютер
Верхняя часть dispmprt.h (включая Dispmprt.h)
IRQL PASSIVE_LEVEL

См. также раздел

DxgkDdiI2CTransmitDataToDisplay