D3DDDI_MAPGPUVIRTUALADDRESS 구조체(d3dukmdt.h)

D3DDDI_MAPGPUVIRTUALADDRESS 구조체는 pfnMapGpuVirtualAddressCb와 함께 사용하여 GPU 가상 주소 범위를 특정 할당 범위에 매핑하거나 유효하지 않거나0 상태로 설정합니다.

구문

typedef struct D3DDDI_MAPGPUVIRTUALADDRESS {
  D3DKMT_HANDLE                           hPagingQueue;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   BaseAddress;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   MinimumAddress;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   MaximumAddress;
  D3DKMT_HANDLE                           hAllocation;
  D3DKMT_ALIGN64 D3DGPU_SIZE_T            OffsetInPages;
  D3DKMT_ALIGN64 D3DGPU_SIZE_T            SizeInPages;
  D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
  D3DKMT_ALIGN64 UINT64                   DriverProtection;
  UINT                                    Reserved0;
  D3DKMT_ALIGN64 UINT64                   Reserved1;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS   VirtualAddress;
  D3DKMT_ALIGN64 UINT64                   PagingFenceValue;
} D3DDDI_MAPGPUVIRTUALADDRESS;

멤버

hPagingQueue

작업에 사용되는 디바이스 페이징 큐에 대한 핸들입니다.

BaseAddress

(선택 사항) NULL이 아닌 경우 비디오 메모리 관리자는 이 주소를 매핑의 기본 주소로 사용하려고 시도합니다. BaseAddress에서 BaseAddress+크기까지의 범위가 무료가 아닌 경우 이전에 pfnReserveGpuVirtualAddressCb 또는 pfnMapGpuVirtualAddressCb를 호출하여 얻은 범위에 속해야 합니다.

BaseAddress 값은 바이트 단위이며 CPU 페이지 경계에 맞춰야 합니다. NULL이 지정된 경우 비디오 메모리 관리자는 지정된 MinimumAddressMaximumAddress 내에서 할당에 대한 기본 주소를 선택합니다.

MinimumAddress

(선택 사항) 매핑된 범위에 대해 고려할 최소 GPU 가상 주소를 지정합니다.

MinimumAddress 값은 바이트 단위이며 4KB 페이지에 맞춰야 합니다. BaseAddress != NULL일 때 이 매개 변수는 무시됩니다.

MaximumAddress

(선택 사항) 매핑된 범위에 대해 고려할 최대 GPU 가상 주소를 지정합니다. 비디오 메모리 관리자는 BaseAddress크기<= MaximumAddress+를 보장합니다. MaximumAddress가 NULL로 설정된 경우 비디오 메모리 관리자는 제한을 적용하지 않습니다.

MaximumAddress 값은 바이트 단위이며 4KB 페이지에 맞춰야 합니다. BaseAddress != NULL일 때 이 매개 변수는 무시됩니다.

hAllocation

GPU 가상 주소 공간에 매핑되는 할당에 대한 핸들입니다. Protection.NoAccess 또는 Protection.Zero가 지정된 경우 NULL이어야 합니다.

OffsetInPages

매핑해야 하는 지정된 할당 내의 시작 페이지에 대한 오프셋(4KB)을 지정합니다.

SizeInPages

매핑할 범위의 크기를 4KB 페이지로 지정합니다.

Protection

매핑된 GPU 가상 주소에 대한 보호를 지정하는 D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE 구조체입니다.

DriverProtection

할당되는 VA 범위와 연결된 드라이버별 64비트 보호 값을 지정합니다. 지정된 드라이버 보호는 이 가상 주소 범위에 해당하는 페이지 테이블 항목에 대해 DxgkDdiUpdatePageTable 호출에 사용됩니다.

Reserved0

이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

Reserved1

이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

VirtualAddress

할당에 할당된 가상 주소입니다.

PagingFenceValue

GPU에서 맵 작업이 완료되면 비디오 메모리 관리자가 신호하는 디바이스 페이징 펜스 값입니다. 사용자 모드 드라이버는 GPU가 매핑된 범위에 액세스하거나 복구할 수 없는 오류가 발생할 수 있도록 허용하기 전에 이 펜스가 사용 중지되었는지 또는 해당 펜스의 CPU 또는 GPU에서 명시적으로 대기해야 합니다. 펜스 값이 0이 반환될 수 있습니다. 즉, 작업이 이미 완료되었습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10
지원되는 최소 서버 Windows Server 2016
머리글 d3dukmdt.h(D3dumddi.h, D3dkmddi.h 포함)

추가 정보

D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE

D3DKMTMapGpuVirtualAddress

DxgkDdiUpdatePageTable

pfnMapGpuVirtualAddressCb

pfnReserveGpuVirtualAddressCb