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