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 |