다음을 통해 공유


DXGKDDI_VIDPN_ASSIGNSOURCEMODESET 콜백 함수(d3dkmddi.h)

pfnAssignSourceModeSet 함수는 지정된 VidPN의 특정 원본에 설정된 소스 모드를 할당합니다.

구문

DXGKDDI_VIDPN_ASSIGNSOURCEMODESET DxgkddiVidpnAssignsourcemodeset;

NTSTATUS DxgkddiVidpnAssignsourcemodeset(
  [in] IN_D3DKMDT_HVIDPN hVidPn,
  [in] IN_CONST_D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId,
  [in] IN_CONST_D3DKMDT_HVIDPNSOURCEMODESET hVidPnSourceModeSet
)
{...}

매개 변수

[in] hVidPn

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

[in] VidPnSourceId

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

[in] hVidPnSourceModeSet

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

반환 값

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

반환 코드 설명
STATUS_SUCCESS 함수가 성공했습니다.
STATUS_GRAPHICS_INVALID_VIDPN hVidPn에 제공된 핸들이 잘못되었습니다.
STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE VidPnSourceId에 제공된 식별자가 잘못되었습니다.
STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET hVidPnSourceModeSet에 제공된 핸들이 잘못되었습니다.
STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET 할당하려는 소스 모드 집합에 원본에 이미 고정된 모드가 포함되어 있지 않습니다.

설명

VidPN 원본 식별자는 운영 체제에서 할당됩니다. 디스플레이 미니포트 드라이버에 의해 구현된 DxgkDdiStartDevice는 디스플레이 어댑터에서 지원하는 비디오 현재 원본의 N을 반환합니다. 그런 다음 운영 체제는 식별자 0, 1, 2, ... 를 할당합니다. N - 1.

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

pfnCreateNewSourceModeSet를 호출하여 핸들을 가져온 다음 새 소스 모드 집합을 원본에 할당하지 않기로 결정한 경우 pfnReleaseSourceModeSet를 호출하여 새로 얻은 핸들을 해제해야 합니다.

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

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

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

  • 소스 모드 집합이 비어 있습니다.
  • 원본 모드 집합에는 이전 모드 집합(있는 경우)에 고정된 모드가 포함되어 있지 않습니다.
  • VidPnSourceId로 식별되는 원본에 대한 원본 모드 집합이 만들어지지 않았습니다.
 
D3DDDI_VIDEO_PRESENT_SOURCE_ID 데이터 형식은 D3dukmdt.h에 정의되어 있습니다.

D3DKMDT_HVIDPN 및 D3DKMDT_HVIDPNSOURCEMODESET 데이터 형식은 D3dkmdt.h에 정의됩니다.

요구 사항

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

추가 정보

VidPN 원본 모드 집합 인터페이스

pfnCreateNewSourceModeSet