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

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

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

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

요구 사항

   
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
대상 플랫폼 데스크톱
헤더 d3dkmddi.h(D3dkmddi.h 포함)
IRQL PASSIVE_LEVEL

참고 항목

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

pfnCreateNewSourceModeSet