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