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


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

DXGKCB_ALLOCATEPAGESFORMDL выделяет страницы физической памяти для списка дескрипторов памяти (MDL), сопоставленного с логическим адресным пространством IOMMU.

Синтаксис

DXGKCB_ALLOCATEPAGESFORMDL DxgkcbAllocatepagesformdl;

NTSTATUS DxgkcbAllocatepagesformdl(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] INOUT_PDXGKARGCB_ALLOCATEPAGESFORMDL pAllocatePagesForMdl
)
{...}

Параметры

[in] hAdapter

Дескриптор адаптера отображения.

[in/out] pAllocatePagesForMdl

Указатель на структуру DXGKARGCB_ALLOCATEPAGESFORMDL, содержащую аргументы для выделения страниц для MDL.

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

Возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае верните соответствующий код ошибки NTSTATUS.

Замечания

Эта функция обратного вызова — это функция драйвера графического порта Windows, эквивалентная функции MmAllocatePagesForMdl.

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

Все объемы памяти, доступ к которым осуществляется gpu во время разбиения на страницы, или сопоставлены с gpuMmu, должны быть сопоставлены с IOMMU. Dxgkrnl предоставляет обратные вызовы драйверу режима ядра, чтобы разрешить выделение и переназначить их на одном шаге.

Заметка

Вызовы DXGKCB_ALLOCATEPAGESFORMDL ограничиваются ограничением MDL PAGE_SIZE 4 ГБ, а Dxgkrnl всегда задает флаг MM_ALLOCATE_FULLY_REQUIRED во внутреннем вызове функции MmAllocatePagesForMdlEx. Драйвер также не должен блокировать память. Dxgkrnl будет управлять заблокированными страницами драйвера, и после перенаправки памяти логический адрес страниц, предоставленных драйверу, может больше не соответствовать физическим адресам.

Дополнительные сведения см. в изоляци и GPU на основе IOMMU.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10 версии 1803 (WDDM 2.4)
заголовка d3dkmddi.h
IRQL PASSIVE_LEVEL

См. также

DXGKARGCB_ALLOCATEPAGESFORMDL

DXGKCB_FREEPAGESFROMMDL

DXGKRNL_INTERFACE