функция обратного вызова 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 | Устройство не признало адрес 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 Semis. Спецификация определяет протокол для инициирования связи 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 (include Dispmprt.h) |
IRQL | PASSIVE_LEVEL |