функция обратного вызова 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) |