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이 잘못된 입력 매개 변수(즉, STATUS_GRAPHICS_INVALID_VIDPN, STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE 또는 STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET 오류 코드와 함께 실패함)로 인해 실패하는 경우 지정된 매개 변수가 운영 체제에서 해제할 모드 집합 개체를 결정하는 데 충분하지 않기 때문에 소스 모드 집합 개체를 해제하지 않습니다. 이러한 잘못된 매개 변수 상황은 드라이버의 총 코딩 오류를 나타냅니다. 올바른 VidPN 핸들, 원본 식별자 또는 VidPN 소스 모드 집합 핸들을 지정하여 이 오류를 해결할 수 있습니다.
pfnAssignSourceModeSet 는 다음 이유 중 하나로 인해 pfnAssignSourceModeSet 이 실패할 경우 모든 입력 매개 변수의 유효성을 성공적으로 검사한 후 소스 모드 집합 개체를 해제합니다.
- 소스 모드 집합이 비어 있습니다.
- 원본 모드 집합에는 이전 모드 집합(있는 경우)에 고정된 모드가 포함되어 있지 않습니다.
- VidPnSourceId로 식별되는 원본에 대한 원본 모드 집합이 만들어지지 않았습니다.
D3DKMDT_HVIDPN 및 D3DKMDT_HVIDPNSOURCEMODESET 데이터 형식은 D3dkmdt.h에 정의됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
대상 플랫폼 | 데스크톱 |
머리글 | d3dkmddi.h(D3dkmddi.h 포함) |
IRQL | PASSIVE_LEVEL |