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

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

Синтаксис

DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE DxgkcbReservegpuvirtualaddressrange;

NTSTATUS DxgkcbReservegpuvirtualaddressrange(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] INOUT_PDXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE pArgs
)
{...}

Параметры

[in] hAdapter

Дескриптор видеоадаптера.

[in/out] pArgs

Структура DXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE , описывающая операцию.

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

DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE возвращает STATUS_SUCCESS в случае успешного выполнения. В противном случае возвращается один из кодов ошибок, определенных в ntstatus.h.

Комментарии

Резервирование диапазона виртуальных адресов GPU возможно только во время создания процесса (т. е. в рамках вызова DxgkDdiCreateProcess) и недопустимо в любое другое время.

Резервирование возможно как в обычном процессе, так и в системном процессе, в котором находится системное устройство и контекст.

Первая запись в корневой таблице страницы (индекс входа таблицы страницы 0) всегда будет инициализирована диспетчером видеопамяти как недопустимая, а резервирование драйвера будет начинаться с индекса записи таблицы страницы 1. Резервирование драйверов всегда должно быть точным кратным виртуальным адресным пространством, покрываемым таблицей конечных страниц, так как определенная запись таблицы страницы не может быть совместно использоваться диспетчером видеопамяти и драйвером в режиме ядра. Записи таблицы страниц, зарезервированные драйвером, будут инициализированы диспетчером видеопамяти как недопустимые и могут быть перезаписаны драйвером для ссылки на внутренне выделенную таблицу страниц, управляемую драйвером. Диспетчер видеопамяти будет обновлять записи зарезервированной таблицы страницы как недопустимые каждый раз, когда соответствующая таблица страницы становится резидентной.

DXGKCB_XXX функции реализуются dxgkrnl. Чтобы использовать эту функцию обратного вызова, задайте соответствующие члены DXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE , а затем вызовите DxgkCbReserveGpuVirtualAddressRange через DXGKRNL_INTERFACE.

Требования

Требование Значение
Минимальная версия клиента Windows 10 (WDDM 2.0)
Минимальная версия сервера Windows Server 2016
Целевая платформа Персональный компьютер
Верхняя часть d3dkmddi.h (включая Dispmprt.h)
IRQL <= PASSIVE_LEVEL

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

DXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE

DxgkDdiCreateProcess

DXGKRNL_INTERFACE