IddCx 버전 1.7 이상에 대한 업데이트

이 페이지에서는 IddCx 1.7의 변경 내용을 설명합니다. IddCx 1.7에 대해 빌드된 단일 간접 디스플레이 드라이버(IDD) 이진 파일은 런타임 검사를 사용하여 Windows 10 버전 1803 이상에서 실행하여 IddCx 1.7의 DDI 변경 내용을 해당 시스템에서 사용할 수 있는지 여부를 확인할 수 있습니다. 자세한 내용은 여러 버전의 Windows용 WDF 드라이버 빌드 를 참조하세요.

IddCx 1.7 변경 내용은 다음 범주로 분류됩니다.

  • IddCxGetVersion 버전이 업데이트되었습니다(콘솔 및 원격). IddCx 관련 버전 정보의 전체 목록은 IddCx 버전을 참조하세요.
  • 향상된 마우스 커서 DDI가 추가되었습니다(콘솔 및 원격에서 사용할 수 있지만 원격에서만 유용).
  • IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS 어댑터 플래그는 더 이상 사용되지 않습니다(콘솔 및 원격).

업데이트된 IddCxGetVersion 버전

Windows Server 2022에서 IddCxGetVersion에서 반환된 IddCx 버전이 IDDCX_VERSION_IRON(0x1700)로 업데이트되었습니다.

원격 드라이버에 대한 업데이트된 마우스 커서

1.7 이전 IddCx 버전의 원격 ID는 절차 커서 이동에 대한 마우스 업데이트만 받습니다. 절차 커서 이동은 원격 클라이언트에서 원격 세션에 삽입된 마우스 입력이 아니라 애플리케이션 또는 서버의 OS에서 API 호출로 인한 위치 변경입니다. 이로 인해 원격 세션에 고유한 몇 가지 문제가 발생합니다. 예를 들면 다음과 같습니다.

  1. IddCx 1.6 이하에서 원격 드라이버는 API 호출이 마우스 위치를 동일한 위치로 두 번 설정했는지 여부를 알 수 없습니다.
  2. 커서 모양 또는 표시 유형 변경은 유효한 위치 없이 트리거할 수 없습니다. 콘솔 ID에는 문제가 되지 않습니다. 그러나 원격 드라이버의 경우 유효한 절차적 위치 변경이 없는 경우 DDI는 커서가 클라이언트에서 점프하도록 하는 위치 값을 제공해야 합니다.

이러한 문제를 해결하기 위해 IddCx 1.7부터 다음과 같은 변경이 수행되었습니다.

IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION 플래그가 추가되었습니다.

원격 드라이버가 모든 마우스 위치 업데이트를 받을 수 있도록 IDDCX_ADAPTER_FLAGS IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION 어댑터 플래그가 추가되었습니다. 이 플래그를 사용하면 원격 드라이버가 절차적 이동뿐만 아니라 모든 커서 위치 변경 내용을 수신하려고 함을 어댑터 기준으로 나타낼 수 있습니다. 이 플래그는 IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER 함께 사용할 때만 유효합니다. IDDCX_ADAPTER_FLAGS_REMOTE_SESSION_DRIVER 없이IDDCX_ADAPTER_FLAGS_REMOTE_ALL_CURSOR_POSITION 설정되면 IddCxAdapterInitAsync가 실패합니다.

커서 위치에 대해 IddCxMonitorQueryHardwareCursor2 DDI가 추가되었습니다.

IddCxMonitorQueryHardwareCursor2 DDI는 커서 위치 정보를 제공합니다. 이 DDI는 IDARG_OUT_QUERY_HWCURSOR2 구조를 반환합니다. 원격 드라이버와 콘솔 드라이버 모두 이 DDI를 호출할 수 있지만 IDARG_OUT_QUERY_HWCURSOR2 구조의 정보는 콘솔 드라이버와 매우 관련이 없습니다.

IDARG_OUT_QUERY_HWCURSOR2 구조체는 다음과 같은 추가 커서 정보를 반환합니다.

  • 위치 ID(PositionId)

    IddCx 1.7 이전에는 커서 DDI셰이프 ID 를 사용하므로 드라이버는 마지막 업데이트 이후 셰이프가 변경되었는지 여부를 알 수 있습니다. IddCx 1.7부터 위치 ID가 추가되었습니다. 새 위치의 X 및 Y 튜닝이 이전 위치와 동일 하더라도 새 커서 위치가 보고되면 위치 ID 값이 변경됩니다.

  • 유효한 위치 플래그(PositionValid)

    PositionValid 는 커서 정보 구조의 커서 위치가 유효한지 여부를 드라이버에 나타냅니다. 이 유효한 플래그는 X, YPositionId 필드에 적용됩니다. 이 플래그를 설정하지 않으면 X, YPositionId 필드를 사용할 수 없습니다.

IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS 플래그가 사용되지 않음(콘솔 및 원격)

데스크톱 렌더링 방식의 변경으로 인해 IddCx 1.7 이동 영역에서 시작하여 프레임 획득 시 더 이상 제공되지 않습니다. 대신 획득 프레임 시간에 제공되는 더티 사각형 목록에는 이미지 및 IDDCX_METADATA 변경된 모든 영역이 포함됩니다.MoveRegionCount는 항상 0입니다.

드라이버는 여전히 IddCx 1.7 이상에 대한 IDDCX_ADAPTER_FLAGS_CAN_USE_MOVE_REGIONS 플래그를 설정할 수 있지만 아무런 효과가 없습니다. 드라이버가 사전 IddCx 1.7에서 실행되도록 설계되고 플래그를 설정하는 경우 해당 드라이버에는 이동을 처리하는 논리가 있어야 합니다. 그렇지 않으면 사용자가 사전 IddCx 1.7 시스템에서 실행할 때 시각적 문제가 표시됩니다.