функция обратного вызова 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.
Смещение — это адрес ввода-вывода на устройстве. При установке EDDCMode устройства E-DDC находятся на I2CAddress (0xA0 для EDID, 0xA4 для DisplayID). Драйвер должен записать SegmentPointer в адрес I2C 0x60, WordOffset, чтобы I2CAddress, а затем выполнить операцию ввода-вывода. Для всех других устройств I2C драйвер должен записывать байты Offset в соответствии с OffsetSizeInBytes.
В случае сбоя драйвер должен возвращать BytesWritten и BytesRead максимально точно.
Для Windows 10 версии 2004 операция записи разрешена только для адреса MCCS I2C 0x6E. Все остальные операции будут заблокированы до последующего выпуска ОС при добавлении управления доступом.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 версии 2004 |
заголовка | dispmprt.h |