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

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

Синтаксис

PFND3DDDI_MAPGPUVIRTUALADDRESSCB Pfnd3dddiMapgpuvirtualaddresscb;

HRESULT Pfnd3dddiMapgpuvirtualaddresscb(
  HANDLE hDevice,
  D3DDDI_MAPGPUVIRTUALADDRESS *unnamedParam2
)
{...}

Параметры

hDevice

Дескриптор устройства отображения.

unnamedParam2

[вход/выход] pDate — это указатель на структуру D3DDDI_MAPGPUVIRTUALADDRESS , описывающую выполняемую операцию.

Возвращаемое значение

pfnMapGpuVirtualAddressCb возвращает одно из следующих значений:

Код возврата Описание
S_OK Операция выполнена успешно.
E_PENDING Вызов выполнен успешно, но операция не завершена. Вызывающий объект должен дождаться возвращаемого значения ограждения перед доступом к выделению.

Эта функция также может возвращать другие значения.

Комментарии

Драйвер пользовательского режима может указать базовый виртуальный адрес GPU (VA) для сопоставления или позволить диспетчеру видеопамять автоматически выбрать его. При указании значения BaseAddress , отличного от NULL, весь диапазон от BaseAddress до BaseAddress+Size должен находиться в освобожденном состоянии или относиться к диапазону va, полученному путем вызова pfnMapGpuVirtualAddressCb или pfnReserveGpuVirtualAddressCb. Если указан параметр Protection.Zero или Protection.NoAccess , диапазон va не может принадлежать диапазону, полученному путем вызова pfnMapGpuVirtualAddressCb.

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

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

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

Требования

Требование Значение
Минимальная версия клиента Windows 10
Минимальная версия сервера Windows Server 2016
Целевая платформа Персональный компьютер
Верхняя часть d3dumddi.h (включая D3dumddi.h)

См. также раздел

D3DDDI_MAPGPUVIRTUALADDRESS

pfnReserveGpuVirtualAddressCb