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


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

Графический драйвер пользовательского режима передает D3DDDI_RESERVEGPUVIRTUALADDRESS в среды выполнения D3D pfnReserveGpuVirtualAddressCb для резервирования диапазона адресов в виртуальном адресном пространстве GPU текущего процесса.

Синтаксис

typedef struct D3DDDI_RESERVEGPUVIRTUALADDRESS {
  union {
    D3DKMT_HANDLE hPagingQueue;
    D3DKMT_HANDLE hAdapter;
  };
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS BaseAddress;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS MinimumAddress;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS MaximumAddress;
  D3DKMT_ALIGN64 D3DGPU_SIZE_T          Size;
  union {
    D3DDDIGPUVIRTUALADDRESS_RESERVATION_TYPE ReservationType;
    UINT                                     Reserved0;
  };
  union {
    D3DKMT_ALIGN64 UINT64 DriverProtection;
    D3DKMT_ALIGN64 UINT64 Reserved1;
  };
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS VirtualAddress;
  union {
    D3DKMT_ALIGN64 UINT64 PagingFenceValue;
    D3DKMT_ALIGN64 UINT64 Reserved2;
  };
} D3DDDI_RESERVEGPUVIRTUALADDRESS;

Члены

hPagingQueue

Этот элемент устарел. Не используйте его.

hAdapter

[in] Дескриптор графического адаптера DirectX или ноль (0). Если наборы UMD hAdapter равны 0, среда выполнения D3D установит hAdapter D3DKMT_HANDLE ядра перед вызовом интерфейса ядра D3DKMTReserveGpuVirtualAddress.

BaseAddress

[in/необязательный] Количество байтов для резервирования в виртуальном адресном пространстве GPU. BaseAddress должны быть выровнены с границой 64 КБ.

Если BaseAddress не имеет значения NULL, диспетчер памяти видео пытается использовать этот адрес в качестве базового адреса для зарезервированного диапазона. Если диапазон от BaseAddress до BaseAddress+Size не является бесплатным, вызов завершается ошибкой. Если BaseAddress не имеет значения NULL, MinimumAddress и MaximumAddress игнорируются.

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

MinimumAddress

[in/необязательный] Минимальный виртуальный адрес GPU, который следует учитывать для зарезервированного диапазона. MinimumAddress находится в байтах и должен быть выровнен по границе 64 КБ. Он игнорируется, если BaseAddress не имеет значения NULL.

MaximumAddress

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

MaximumAddress находится в байтах и должен быть выровнен по границе 64 КБ. Он игнорируется, если BaseAddress не имеет значения NULL.

Size

[in] Размер диапазона для резервирования в байтах. Должно быть несколько 64 КБ.

ReservationType

Этот элемент устарел. Не используйте его.

Reserved0

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

DriverProtection

Этот элемент устарел. Не используйте его.

Reserved1

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

VirtualAddress

[out] Зарезервированный виртуальный адрес.

PagingFenceValue

Этот элемент устарел. Не используйте его.

Reserved2

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

Требования

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

См. также

pfnReserveGpuVirtualAddressCb