다음을 통해 공유


D3DDDI_MAPGPUVIRTUALADDRESS 구조체(d3dukmdt.h)

D3DDDI_MAPGPUVIRTUALADDRESS 구조체는 pfnMapGpuVirtualAddressCb 사용하여 GPU 가상 주소 범위를 특정 할당 범위에 매핑하거나 잘못된또는 제로상태에 배치합니다.

통사론

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이 아닌 경우 비디오 메모리 관리자는 이 주소를 매핑의 기본 주소로 사용하려고 시도합니다. BaseAddressBaseAddress+Size 범위가 무료가 아닌 경우 이전에 pfnReserveGpuVirtualAddressCb 또는 pfnMapGpuVirtualAddressCb호출하여 얻은 범위에 속해야 합니다.

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

MinimumAddress

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

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

MaximumAddress

(선택 사항) 매핑된 범위에 대해 고려할 최대 GPU 가상 주소를 지정합니다. 비디오 메모리 관리자는 BaseAddress+Size<= 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