Поделиться через


структура D3DDDI_MAPGPUVIRTUALADDRESS (d3dukmdt.h)

Структура D3DDDI_MAPGPUVIRTUALADDRESS используется с pfnMapGpuVirtualAddressCb для сопоставления диапазона виртуальных адресов GPU с определенным диапазоном выделения или для его размещения в состояние Invalid или Zero.

Синтаксис

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+Size не является бесплатным, он должен принадлежать диапазону, ранее полученному путем вызова pfnReserveGpuVirtualAddressCb или pfnMapGpuVirtualAddressCb.

Значение BaseAddress находится в байтах и должно быть выровнено по границе страницы ЦП. Если задано значение NULL, диспетчер памяти видео выбирает базовый адрес для выделения в пределах указанного MinimumAddress и MaximumAddress.

MinimumAddress

(Необязательно) Указывает минимальный виртуальный адрес GPU, который следует учитывать для сопоставленного диапазона.

Значение MinimumAddress находится в байтах и должно быть выровнено на страницу размером 4 КБ. Этот параметр игнорируется при BaseAddress != NULL.

MaximumAddress

(Необязательно) Указывает максимальный виртуальный адрес GPU, который следует учитывать для сопоставленного диапазона. Диспетчер памяти видео гарантирует, что BaseAddress+Size<= MaximumAddress. Если для параметра MaximumAddress задано значение NULL, диспетчер памяти видео не будет применять никаких ограничений.

Значение MaximumAddress находится в байтах и должно быть выровнено на страницу 4 КБ. Этот параметр игнорируется при BaseAddress != NULL.

hAllocation

Обработка выделения, сопоставленного с виртуальным адресным пространством GPU. Значение NULL должно иметь значение NULL при указании Protection.NoAccess или Protection.Zero.

OffsetInPages

Указывает смещение в 4 КБ на начальную страницу в указанном выделении, которое должно быть сопоставлено.

SizeInPages

Задает размер диапазона для сопоставления в 4 КБ страниц.

Protection

Структура D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE, указывающая защиту виртуального адреса GPU, сопоставленного.

DriverProtection

Указывает 64-разрядное значение защиты, связанное с выделенным диапазоном va. Указанная защита драйвера будет использоваться при вызове DxgkDdiUpdatePageTable для записей таблицы страниц, соответствующих этому диапазону виртуальных адресов.

Reserved0

Этот элемент зарезервирован и должен иметь значение нулю.

Reserved1

Этот элемент зарезервирован и должен иметь значение нулю.

VirtualAddress

Виртуальный адрес, назначенный выделению.

PagingFenceValue

Значение забора на страницы устройства, которое диспетчер памяти видео сигнализирует, когда операция карты завершается на GPU. Драйвер пользовательского режима должен убедиться, что этот забор снят или явно ожидается на ЦП или GPU на этом заборе, прежде чем разрешить GPU получить доступ к сопоставленной диапазону или неустранимой ошибке может возникнуть. Может быть возвращено нулевое значение ограждения, что означает, что операция уже завершена.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10
минимальный поддерживаемый сервер Windows Server 2016
заголовка d3dukmdt.h (include D3dumddi.h, D3dkmddi.h)

См. также

D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE

D3DKMTMapGpuVirtualAddress

DxgkDdiUpdatePageTable

pfnMapGpuVirtualAddressCb

pfnReserveGpuVirtualAddressCb