DXGKDDI_I2C_RECEIVE_DATA_FROM_DISPLAY 콜백 함수(dispmprt.h)

DxgkDdiI2CReceiveDataFromDisplay는 모니터의 I2C 디바이스에서 받은 데이터를 반환합니다.

구문

DXGKDDI_I2C_RECEIVE_DATA_FROM_DISPLAY DxgkddiI2cReceiveDataFromDisplay;

NTSTATUS DxgkddiI2cReceiveDataFromDisplay(
  [in]  PVOID MiniportDeviceContext,
  [in]  D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId,
  [in]  ULONG SevenBitI2CAddress,
  [in]  ULONG Flags,
  [in]  ULONG DataLength,
  [out] PVOID Data
)
{...}

매개 변수

[in] MiniportDeviceContext

디스플레이 어댑터와 연결된 컨텍스트 블록에 대한 핸들입니다. 디스플레이 미니포트 드라이버의 DxgkDdiAddDevice 함수는 이전에 이 핸들을 Microsoft DirectX 그래픽 커널 하위 시스템에 제공했습니다.

[in] VidPnTargetId

디스플레이 어댑터에 있는 비디오 대상 중 하나를 식별하는 정수입니다.

[in] SevenBitI2CAddress

데이터를 받을 I2C 디바이스의 주소입니다.

[in] Flags

데이터의 길이가 I2C 디바이스에서 전송되는 데이터의 일부로 제공되는지 여부를 지정하는 값입니다. 이 매개 변수는 다음 값 중 하나로 설정해야 합니다.

의미
I2C_NO_FLAGS 데이터 길이는 DataLength 매개 변수에 의해 제공됩니다. I2C 디바이스는 전송하는 데이터의 일부로 데이터 길이를 제공하지 않습니다.
I2C_DEVICE_TRANSMITS_DATA_LENGTH 데이터 길이는 I2C 디바이스가 전송하는 데이터의 일부로 제공됩니다. I2C 디바이스는 2바이트 이상을 전송합니다. 전송되는 두 번째 바이트의 7개 가장 중요한 비트는 중간 길이를 포함합니다. 중간 길이에 1을 추가하여 중간 길이를 포함하는 바이트 다음에 전송될 바이트 수를 계산할 수 있습니다.

[in] DataLength

Data가 가리키는 버퍼의 길이(바이트) 입니다.

[out] Data

데이터를 수신하는 버퍼에 대한 포인터입니다. 버퍼는 페이징된 메모리에 있을 수 있습니다.

반환 값

DxgkDdiI2CReceiveDataFromDisplay는 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 Ntstatus.h에 정의된 오류 코드 중 하나를 반환합니다. 다음 목록에서는 반환할 수 있는 몇 가지 가능한 오류 코드를 제공합니다.

반환 코드 설명
STATUS_GRAPHICS_MONITOR_NOT_CONNECTED VidPnTargetId로 식별된 비디오 출력에 연결된 모니터가 없습니다.
STATUS_GRAPHICS_I2C_NOT_SUPPORTED VidPnTargetId로 식별된 비디오 출력에는 I2C 버스가 없습니다.
STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST SevenBitI2CAddress에 제공된 I2C 주소를 승인한 디바이스가 없습니다. 이는 I2C 버스의 디바이스에 지정된 주소가 없거나 주소가 전송될 때 오류가 발생했음을 의미할 수 있습니다.
STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA I2C 주소가 성공적으로 전송되었지만 I2C 디바이스에서 데이터를 수신하는 동안 오류가 발생했습니다.
STATUS_BUFFER_TOO_SMALL DataLength에 제공된 값이 필요한 데이터 버퍼 크기보다 작습니다. 이 반환 값은 I2C_DEVICE_TRANSMITS_DATA_LENGTH 플래그가 설정된 경우에만 의미가 있습니다.

설명

VidPnTargetId로 식별된 비디오 현재 대상은 디스플레이 어댑터의 비디오 출력 중 하나와 연결됩니다. 데이터는 해당 비디오 출력에 연결된 모니터의 I2C 디바이스에서 수신됩니다.

DxgkDdiI2CReceiveDataFromDisplay 함수는 I2C 시작 조건 신호를 보내고, I2C 주소를 보내고, I2C 디바이스에서 데이터를 수신하고, 승인을 보내고, 중지 조건을 신호하는 역할을 담당합니다. I2C 버스에 대한 자세한 내용은 필립스 반도체에서 게시한 I2C 버스 사양을 참조하세요. 이 사양은 I2C 통신을 시작하고, I2C 데이터 라인을 통해 바이트를 읽고 쓰고, I2C 통신을 종료하기 위한 프로토콜을 정의합니다. 일부 언어에서는 이 리소스를 사용할 수 없습니다.

및 국가)를 선택합니다.

DxgkDdiI2CReceiveDataFromDisplay는 주소 0x6F 있지만 주소가 다른 I2C 디바이스에서 데이터 수신을 거부할 수 있는 I2C 디바이스에서 데이터를 수신하는 데 필요합니다.

디스플레이 미니포트 드라이버 또는 그래픽 하드웨어의 다른 부분이 지정된 모니터의 I2C 버스를 사용하는 경우 DxgkDdiI2CReceiveDataFromDisplay를 차단할 수 있습니다. 디스플레이 미니포트 드라이버가 I2C 버스를 사용하여 HDCP(고대역폭 디지털 콘텐츠 보호) 데이터를 보내거나 받는 경우에도 차단할 수 있습니다.

디스플레이 어댑터가 HDCP를 지원하는 경우 디바이스에 HDCP에서 사용되는 I2C 주소가 있는 경우 DxgkDdiI2CReceiveDataFromDisplay 는 I2C 디바이스에서 데이터 수신을 거부해야 합니다.

DxgkDdiI2CReceiveDataFromDisplay 는 디스플레이 어댑터의 I2C 디바이스에서 데이터를 수신해서는 안 됩니다. 즉, 이 함수는 디스플레이 어댑터 자체에 있는 I2C 디바이스가 아니라 디스플레이 어댑터에 연결된 모니터의 I2C 디바이스에서 데이터를 수신할 수 있습니다.

DxgkDdiI2CReceiveDataFromDisplay 를 페이징 가능으로 만들어야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 dispmprt.h(Dispmprt.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

DxgkDdiI2CTransmitDataToDisplay