DXGKDDI_DPSBMTRANSMISSION 콜백 함수(dispmprt.h)

DXGKDDI_DPSBMTRANSMISSION 콜백은 사이드밴드 채널을 통해 DP(DisplayPort) 분기 디바이스 및 싱크 디바이스와 통신하는 데 사용됩니다.

구문

DXGKDDI_DPSBMTRANSMISSION DxgkddiDpsbmtransmission;

NTSTATUS DxgkddiDpsbmtransmission(
  HANDLE Context,
  PDXGKARG_DPSBMTRANSMISSION pArgs
)
{...}

매개 변수

Context

인터페이스를 쿼리할 때 제공되는 컨텍스트 포인터입니다.

pArgs

DXGKARG_DPSBMTRANSMISSION 구조체에 대한 포인터입니다.

반환 값

DXGKDDI_DPSBMTRANSMISSION 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 다음 중 하나와 같은 오류 코드를 반환합니다.

오류 코드 의미
STATUS_DRIVER_INTERNAL_ERROR 내부 소프트웨어 오류가 발생했습니다.
STATUS_ACCESS_DENIED 요청이 지원되지 않습니다. Windows 10 버전 2004의 경우 아래 설명 섹션에 나열된 사이드밴드 메시지 요청만 지원됩니다.
STATUS_BUFFER_TOO_SMALL 버퍼가 너무 작아서 사이드밴드 메시지 회신 또는 기타 작업을 수행할 수 없습니다.
STATUS_DEVICE_HARDWARE_ERROR 하드웨어 오류가 발생했습니다.
STATUS_DEVICE_POWERED_OFF 디바이스 전원이 꺼져 있습니다.
STATUS_DEVICE_NOT_CONNECTED 디바이스가 연결되지 않았습니다.
STATUS_DEVICE_PROTOCOL_ERROR DP AUX, I2C over AUX 프로토콜 수준에서 오류가 발생했습니다. 드라이버는 DPNativeError 를 사용하여 오류에 대한 자세한 내용을 인코딩할 수 있습니다.

설명

Windows 10 버전 2004의 경우 드라이버는 다음 SBM(Sideband Message) 요청의 쿼리 유형만 지원하면 됩니다.

  • GET_MESSAGE_TRANSACTION_VERSION
  • LINK_ADDRESS
  • QUERY_PAYLOAD
  • REMOTE_DPCD_READ
  • REMOTE_I2C_READ
  • QUERY_STREAM_ENCRYPTION_STATUS

디스플레이 커널 런타임은 다른 SBM 요청을 차단합니다.

SBM 트랜잭션의 경우 요청이 기록되고 DP 사양(DOWN_REQ 및 UP_REP)에 따라 고정 DPCD 범위에서 회신을 읽어 주소 필드가 없습니다.

DXGKDDI_DPSBMTRANSMISSION "atomic"이므로 드라이버는 반환하기 전에 SBM 요청의 응답을 기다렸다가 수신해야 합니다. pArgs-Data>의 SBM 요청은 호출자가 완전히 패킷화하므로 드라이버는 SBM 패킷 크기의 Data RequestLength를 DOWN_REQ DPCD 범위에 순차적으로 직접 쓸 수 있습니다. 드라이버는 처리/해석 없이 데이터에 직접 SBM 회신 패킷을 수신해야 합니다.

드라이버는 SideBand_MSG_Header End_Of_Message 비트를 사용하여 전체 회신이 수신되었는지 여부를 결정해야 하지만 추가 처리를 피해야 합니다. 데이터는MaxReplyLength 까지 응답을 바이트 단위로 저장할 수 있으므로 드라이버는 오버플로 패킷을 삭제해야 합니다. 드라이버는 ActualReplyLength에서 회신의 실제 길이를 반환해야 합니다.

드라이버는 다른 ACK 회신과 마찬가지로 호출자가 디코딩하는 NAK 회신에 대해 특별히 검사 필요가 없습니다. NAK 회신의 경우 드라이버는 STATUS_SUCCESS 반환해야 합니다.

MaxReplyLength는 최대 사이드밴드 메시지 패킷 크기인 48바이트 이상입니다. 이렇게 하면 단일 패킷 회신에 대해 원시 메시지를 직접 복사할 수 있습니다. 여러 패킷이 있는 회신의 경우 MaxReplyLength 는 버퍼 부족 가능성을 낮추기 위해 SBM 헤더의 패킷 크기가 16바이트이고 가장 긴 상대 주소를 기준으로 계산됩니다.

CanUseCachedData 플래그는 드라이버가 캐시된 회신 데이터를 반환할 수 있지만 SBM 패킷 형식이어야 했음을 나타냅니다.

요구 사항

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

추가 정보

DXGKARG_DPSBMTRANSMISSION