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 포함) |