D3DKMTMapGpuVirtualAddress 함수(d3dkmthk.h)

D3DKMTMapGpuVirtualAddress 는 GPU 가상 주소 범위를 특정 할당 범위에 매핑하거나 유효하지 않거나0 상태로 설정합니다.

구문

NTSTATUS D3DKMTMapGpuVirtualAddress(
  D3DDDI_MAPGPUVIRTUALADDRESS *unnamedParam1
);

매개 변수

unnamedParam1

[in/out] pData 는 작업을 설명하는 D3DDDI_MAPGPUVIRTUALADDRESS 구조체에 대한 포인터입니다.

반환 값

반환 코드 설명
STATUS_SUCCESS 디바이스 컨텍스트가 성공적으로 만들어졌습니다.
STATUS_INVALID_PARAMETER 매개 변수의 유효성이 검사되었고 잘못된 것으로 확인되었습니다.

이 함수는 다른 NTSTATUS 값을 반환할 수도 있습니다.

설명

드라이버는 매핑할 기본 GPU VA(가상 주소)를 지정하거나 비디오 메모리 관리자가 자동으로 하나를 선택하도록 할 수 있습니다. NULL이 아닌 BaseAddress 값을 지정할 때 BaseAddress에서 BaseAddress+Size까지의 전체 범위는 해제된 상태이거나 D3DKMTMapGpuVirtualAddress 또는 DxgkCbReserveGpuVirtualAddressRange를 호출하여 얻은 VA 범위에 속해야 합니다. Protection.Zero 또는 Protection.NoAccess를 지정하면 VA 범위는 MapGpuVirtualAddressCb를 호출하여 얻은 범위에 속할 수 없습니다.

드라이버는 기본적으로 항상 존재하는 읽기 권한 외에도 매핑에서 쓰기 및 실행 권한을 허용할지 여부를 지정할 수 있습니다.

LDA(연결된 디스플레이 어댑터) 구성에서 페이징 큐는 페이지 테이블이 수정된 실제 GPU를 정의하고 할당 핸들(NULL이 아닌 경우)은 페이지 테이블 항목이 가리키는 위치를 정의합니다. 할당은 실제 GPU 메모리 세그먼트에 상주할 수 있습니다.

API에 의해 할당되는 GPU VA 범위는 할당(GPU VA가 매핑됨)이 제거되면 해제됩니다. VA 범위는 D3DKMTFreeGpuVirtualAddress를 호출하여 해제할 수도 있지만 필요한 경우 할당 파기와 동기화해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10
지원되는 최소 서버 Windows Server 2016
대상 플랫폼 유니버설
헤더 d3dkmthk.h(D3dkmthk.h 포함)
라이브러리 Gdi32.lib
DLL Gdi32.dll

추가 정보

DxgkCbReserveGpuVirtualAddressRange