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