DXGKDDI_DPI2CIOTRANSMISSION 콜백 함수(dispmprt.h)

DXGKDDI_DPI2CIOTRANSMISSION 콜백은 GPU에 직접 연결된 디바이스에서 AUX 읽기/쓰기 작업을 통해 DP I2C를 수행합니다.

구문

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의 경우 AUX 읽기를 통해 I2C만 지원됩니다.
STATUS_BUFFER_TOO_SMALL 버퍼가 너무 작아서 작업을 수행할 수 없습니다.
STATUS_DEVICE_HARDWARE_ERROR 하드웨어 오류가 발생했습니다.
STATUS_DEVICE_POWERED_OFF 디바이스 전원이 꺼져 있습니다.
STATUS_DEVICE_NOT_CONNECTED 디바이스가 연결되지 않았습니다.
STATUS_DEVICE_PROTOCOL_ERROR AUX 프로토콜 수준에서 I2C에서 오류가 발생했습니다. 드라이버는 DPNativeError 를 사용하여 오류에 대한 자세한 내용을 인코딩할 수 있습니다.

설명

이 DDI 호출은 GPU에 직접 연결된 디바이스에서 AUX 읽기/쓰기를 통해 DP I2C를 수행하는 데 사용됩니다.

I2C의 경우 pArgs가 가리키는 DXGKARG_DPI2CIOTRANSMISSION 구조에서 데이터 버퍼의 최대 크기는 128바이트입니다. MCCS 및 기타 프로토콜에 대해 단일 버스 트랜잭션/주기에서 읽기 작업 전에 쓰기 작업을 결합하는 것이 지원됩니다. 데이터 버퍼의 크기는 BufferSizeSupplied이며 BytesToWriteBytesToRead의 더 큰 값보다 크거나 같아야 합니다.

오프셋 은 디바이스 내 IO의 주소입니다. EDDCMode가 설정되면 I2CAddress에 E-DDC 디바이스가 있습니다(EDID의 경우 0xA0, DisplayID의 경우 0xA4). 드라이버는 I2C 주소 0x60 SegmentPointer 를 작성하고 WordOffsetI2CAddress 에 쓴 다음 IO 작업을 수행해야 합니다. 다른 모든 I2C 디바이스의 경우 드라이버는 OffsetSizeInBytes에 따라 오프셋 바이트를 작성해야 합니다.

오류가 발생할 경우 드라이버는 BytesWrittenBytesRead 를 가능한 한 정확하게 반환해야 합니다.

Windows 10 버전 2004의 경우 쓰기 작업은 0x6E MCCS I2C 주소에 대해서만 허용됩니다. 액세스 제어가 추가될 때 이후 OS 릴리스까지 다른 모든 작업이 차단됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 2004
머리글 dispmprt.h

추가 정보

DXGKARG_DPI2CIOTRANSMISSION