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 구조에서 Data 버퍼의 최대 크기는 128바이트입니다. MCCS 및 기타 프로토콜에 대해 단일 버스 트랜잭션/주기에서 읽기 작업 전에 쓰기 작업을 결합하는 것이 지원됩니다. Data 버퍼의 크기는 BufferSizeSupplied 크기이며, 이는 BytesToWrite 및 BytesToRead큰 값보다 크거나 같아야 합니다.
오프셋 디바이스 내 IO의 주소입니다. EDDCMode 설정되면 I2CAddress E-DDC 디바이스가 있습니다(EDID의 경우 0xA0, DisplayID의 경우 0xA4). 드라이버는 I2C 주소 0x60 SegmentPointer 작성해야 WordOffset I2CAddress 다음 IO 작업을 수행합니다. 다른 모든 I2C 디바이스의 경우 드라이버는 OffsetSizeInBytes따라 Offset 바이트를 작성해야 합니다.
오류가 발생하는 경우 드라이버는 BytesWritten 반환하고 가능한 한 정확하게 합니다.
Windows 10 버전 2004의 경우 쓰기 작업은 0x6E MCCS I2C 주소에 대해서만 허용됩니다. 액세스 제어가 추가될 때 이후 OS 릴리스까지 다른 모든 작업이 차단됩니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 버전 2004 |
헤더 | dispmprt.h |