функция обратного вызова DXGKDDI_DPI2CIOTRANSMISSION (dispmprt.h)

Обратный вызов DXGKDDI_DPI2CIOTRANSMISSION выполняет dp I2C через операции чтения и записи AUX на устройствах, непосредственно подключенных к GPU.

Синтаксис

DXGKDDI_DPI2CIOTRANSMISSION DxgkddiDpi2ciotransmission;

NTSTATUS DxgkddiDpi2ciotransmission(
  HANDLE Context,
  PDXGKARG_DPI2CIOTRANSMISSION pArgs
)
{...}

Параметры

Context

Указатель контекста, предоставляемый при запросе интерфейса.

pArgs

Указатель на структуру DXGKARG_DPI2CIOTRANSMISSION .

Возвращаемое значение

DXGKDDI_DPI2CIOTRANSMISSION возвращает STATUS_SUCCESS в случае успешного выполнения. в противном случае возвращается код ошибки, например один из следующих:

Код ошибки Значение
STATUS_DRIVER_INTERNAL_ERROR Внутренняя программная ошибка.
STATUS_ACCESS_DENIED Запрос не поддерживается. Для Windows 10 версии 2004 поддерживается только чтение I2C через AUX.
STATUS_BUFFER_TOO_SMALL Буфер слишком мал для операции.
STATUS_DEVICE_HARDWARE_ERROR Произошла ошибка оборудования.
STATUS_DEVICE_POWERED_OFF Устройство отключено.
STATUS_DEVICE_NOT_CONNECTED Устройство не подключено.
STATUS_DEVICE_PROTOCOL_ERROR Произошла ошибка на уровне протокола I2C по протоколу AUX. Драйвер может использовать DPNativeError для кодирования дополнительных сведений об ошибке.

Комментарии

Этот вызов DDI используется для выполнения операций dp I2C по протоколу AUX для чтения и записи на устройствах, непосредственно подключенных к GPU.

Для I2C максимальный размер буфера данных в структуре DXGKARG_DPI2CIOTRANSMISSION , на которую указывает pArgs , составляет 128 байт. Объединение операции записи перед операцией чтения в одной транзакции или цикле шины поддерживается для MCCS и других протоколов. Буфер данных имеет размер BufferSizeSupplied, который должен быть больше или равен большему значению BytesToWrite и BytesToRead.

Offset — это адрес для операций ввода-вывода на устройстве. Если задан EDDCMode , устройства E-DDC находятся в I2CAddress (0xA0 для EDID, 0xA4 для DisplayID). Драйвер должен записать SegmentPointer в адрес I2C 0x60 , WordOffset в I2CAddress , а затем выполнить операцию ввода-вывода. Для всех остальных устройств I2C драйвер должен записывать байты Offset в соответствии с OffsetSizeInBytes.

В случае сбоя драйвер должен как можно точнее возвращать значения BytesWritten и BytesRead .

В Windows 10 версии 2004 операция записи разрешена только для адреса 0X6E MCCS I2C. Все остальные операции будут заблокированы до более поздней версии ОС при добавлении управления доступом.

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 2004
Верхняя часть dispmprt.h

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

DXGKARG_DPI2CIOTRANSMISSION