DXGKDDI_VIDPN_ASSIGNTARGETMODESET 콜백 함수(d3dkmddi.h)

pfnAssignTargetModeSet 함수는 지정된 VidPN의 특정 대상에 설정된 대상 모드를 할당합니다.

구문

DXGKDDI_VIDPN_ASSIGNTARGETMODESET DxgkddiVidpnAssigntargetmodeset;

NTSTATUS DxgkddiVidpnAssigntargetmodeset(
  [in] IN_D3DKMDT_HVIDPN hVidPn,
  [in] IN_CONST_D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId,
  [in] IN_CONST_D3DKMDT_HVIDPNTARGETMODESET hVidPnTargetModeSet
)
{...}

매개 변수

[in] hVidPn

VidPN 개체에 대한 핸들입니다. VidPN 관리자는 이전에 DxgkDdiEnumVidPnCofuncModality 또는 DxgkDdiRecommendFunctionalVidPn을 호출하여 디스플레이 미니포트 드라이버에 이 핸들을 제공했습니다.

[in] VidPnTargetId

VidPN 개체와 연결된 비디오 현재 대상 중 하나를 식별하는 정수입니다.

[in] hVidPnTargetModeSet

VidPnTargetId로 식별된 대상에 할당할 대상 모드 집합 개체에 대한 핸들입니다. 디스플레이 미니포트 드라이버는 이전에 pfnCreateNewTargetModeSet을 호출하여 이 핸들을 얻었습니다.

반환 값

pfnAssignTargetModeSet 함수는 다음 값 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS 함수가 성공했습니다.
STATUS_GRAPHICS_INVALID_VIDPN hVidPn에 제공된 핸들이 잘못되었습니다.
STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET VidPnTargetId에 제공된 식별자가 잘못되었습니다.
STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET hVidPnTargetModeSet에 제공된 핸들이 잘못되었습니다.
STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET 할당하려는 대상 모드 집합에 대상에 이미 고정된 모드가 포함되어 있지 않습니다.

설명

VidPN 대상 식별자는 디스플레이 미니포트 드라이버에 의해 할당됩니다. 디스플레이 미니포트 드라이버에 의해 구현된 DxgkDdiQueryChildRelations는 각각 식별자가 포함된 DXGK_CHILD_DESCRIPTOR 구조의 배열을 반환합니다.

pfnCreateNewTargetModeSet을 호출하여 핸들을 가져온 다음 해당 핸들을 pfnAssignTargetModeSet에 전달하는 경우 pfnReleaseTargetModeSet를 호출하여 핸들을 해제할 필요가 없습니다.

pfnCreateNewTargetModeSet을 호출하여 핸들을 가져온 다음 대상에 설정된 새 대상 모드를 할당하지 않기로 결정한 경우 pfnReleaseTargetModeSet을 호출하여 새로 가져온 핸들을 해제해야 합니다.

참고pfnAssignTargetModeSet 함수는 pfnAssignTargetModeSet이 실패한 이유에 따라 hVidPnTargetModeSet 매개 변수로 식별되는 대상 모드 집합 개체를 해제 하거나 해제하지 않습니다.

pfnAssignTargetModeSet이 잘못된 입력 매개 변수(즉, STATUS_GRAPHICS_INVALID_VIDPN, STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET 또는 STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET 오류 코드와 함께 실패함)로 인해 실패하는 경우 지정된 매개 변수가 운영 체제에서 해제할 모드 집합 개체를 결정하기에 충분하지 않기 때문에 대상 모드 집합 개체를 해제하지 않습니다. 이러한 잘못된 매개 변수 상황은 드라이버의 총 코딩 오류를 나타냅니다. 올바른 VidPN 핸들, 대상 식별자 또는 VidPN 대상 모드 집합 핸들을 지정하여 이 오류를 해결할 수 있습니다.

pfnAssignTargetModeSet 은 다음 이유 중 하나로 인해 pfnAssignTargetModeSet 이 실패하는 경우 모든 입력 매개 변수의 유효성을 성공적으로 검사한 후 대상 모드 집합 개체를 해제합니다.

  • 대상 모드 집합이 비어 있습니다.
  • 대상 모드 집합에는 이전 모드 집합(있는 경우)에 고정된 모드가 포함되어 있지 않습니다.
  • VidPnTargetId로 식별되는 대상에 대해 대상 모드 집합이 만들어지지 않았습니다.
 
D3DDDI_VIDEO_PRESENT_TARGET_ID 데이터 형식은 D3dukmdt.h에 정의되어 있습니다.

D3DKMDT_HVIDPN 및 D3DKMDT_HVIDPNTARGETMODESET 데이터 형식은 D3dkmdt.h에 정의되어 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
대상 플랫폼 데스크톱
머리글 d3dkmddi.h(D3dkmddi.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

VidPN 대상 모드 집합 인터페이스

pfnCreateNewTargetModeSet