функция обратного вызова DXGKCB_ALLOCATEADL (d3dkmddi.h)
DXGKCB_ALLOCATEADL создает список дескрипторов адресов (ADL).
Синтаксис
DXGKCB_ALLOCATEADL DxgkcbAllocateadl;
NTSTATUS DxgkcbAllocateadl(
[in/out] IN_OUT_PDXGKARGCB_ALLOCATE_ADL pArgs
)
{...}
Параметры
[in/out] pArgs
Указатель на структуру DXGKARGCB_ALLOCATE_ADL , содержащую сведения о создаваемом ADL. При успешном выполнении возвращает DXGK_ADL структуру со списком адресов страниц, которые можно использовать для программирования оборудования.
Возвращаемое значение
Возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае возвращает соответствующий код ошибки NTSTATUS, например STATUS_INVALID_PARAMETER.
Комментарии
Функции DXGKCB_ALLOCATEADL и DXGKCB_FREEADL используются для создания и уничтожения списков ADL, описывающих адреса памяти, которые можно запрограммировать (сопоставить) с GPU. Базовая память может указывать на логическую или физическую память в зависимости от того, используется ли IOMMU, поэтому драйвер не должен пытаться предположить, что эти адреса представляют физические страницы.
Когда ADL выделяется из физического объекта, Dxgkrnl гарантирует, что эта память остается заблокированной и не может быть перегружаемой в течение всего времени существования ADL.
Дополнительные сведения см. в разделе Переназначение DMA IOMMU .
DXGKCB_XXX функции реализуются dxgkrnl. Чтобы использовать эту функцию обратного вызова, задайте соответствующие члены DXGKARGCB_ALLOCATE_ADL , а затем вызовите DxgkCbAllocateAdl через DXGKRNL_INTERFACE.
Требования
Требование | Значение |
---|---|
Минимальная версия сервера | Windows Server 2022 (WDDM 2.9) |
Верхняя часть | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |