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


функция обратного вызова PFND3DDDI_MAPGPUVIRTUALADDRESSCB (d3dumddi.h)

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

Синтаксис

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 должен находиться в освобожденном состоянии или принадлежать диапазону va, полученному путем вызова pfnMapGpuVirtualAddressCb или pfnReserveGpuVirtualAddressCb. Если указан Protection.Zero или Protection.NoAccess, диапазон va не может принадлежать диапазону, полученному путем вызова pfnMapGpuVirtualAddressCb.

Драйвер пользовательского режима может указать, должно ли сопоставление разрешать запись и выполнение привилегий в дополнение к привилегиям чтения, которые всегда существуют по умолчанию.

В конфигурации связанного адаптера отображения (LDA) очередь разбиения по страницам определяет физический GPU, таблицы страниц которого изменяются, а дескриптор выделения (если не NULL) определяет, где указываются записи таблицы страниц. Выделение может находиться в любом физическом сегменте памяти GPU.

Диапазон VA GPU, выделенный API, освобождается при уничтожении выделения (с gpu VA). Диапазон va также можно освободить, вызвав PFND3DDDI_FREEGPUVIRTUALADDRESSCB, но при необходимости его необходимо синхронизировать с уничтожением выделения.

Требования

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

См. также

D3DDDI_MAPGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb