PFND3DDDI_MAPGPUVIRTUALADDRESSCB 콜백 함수(d3dumddi.h)

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

구문

PFND3DDDI_MAPGPUVIRTUALADDRESSCB Pfnd3dddiMapgpuvirtualaddresscb;

HRESULT Pfnd3dddiMapgpuvirtualaddresscb(
  HANDLE hDevice,
  D3DDDI_MAPGPUVIRTUALADDRESS *unnamedParam2
)
{...}

매개 변수

hDevice

디스플레이 디바이스에 대한 핸들입니다.

unnamedParam2

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

반환 값

pfnMapGpuVirtualAddressCb 는 다음 값 중 하나를 반환합니다.

반환 코드 설명
S_OK 작업이 성공적으로 완료되었습니다.
E_PENDING 호출이 성공했지만 작업이 완료되지 않았습니다. 호출자는 할당에 액세스하기 전에 반환된 펜스 값을 기다려야 합니다.

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

설명

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

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

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

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

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10
지원되는 최소 서버 Windows Server 2016
대상 플랫폼 데스크톱
머리글 d3dumddi.h(D3dumddi.h 포함)

추가 정보

D3DDDI_MAPGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb