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


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

Функция DxgkDdiCreateMemoryBasis в KMD создает дескриптор для коллекции диапазонов памяти, представляющих выделение, с которым выполняется распределение во время отслеживания грязное битов.

Синтаксис

DXGKDDI_CREATEMEMORYBASIS DxgkddiCreatememorybasis;

HANDLE DxgkddiCreatememorybasis(
  IN_CONST_HANDLE hAdapter,
  IN_CONST_PDXGKARG_CREATEMEMORYBASIS pArgs
)
{...}

Параметры

hAdapter

[in] Дескриптор для блока контекста, связанного с видеоадаптером. Ранее KMD предоставлял этот дескриптор Dxgkrnl в выходном параметре MiniportDeviceContext функции DxgiDdiAddDevice .

pArgs

[in] Указатель на структуру DXGKARG_CREATEMEMORYBASIS , содержащую сведения для создаваемой базы.

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

DxgkDdiCreateMemoryBasis возвращает HANDLE в ссылку KMD для отслеживания коллекции диапазонов. KMD должен иметь возможность преобразовывать эти сведения в сведения базы в последующих командах, таких как DxgkDdiDetadataMemoryBasis.

Комментарии

Отслеживание операций изменения в виртуальной памяти предназначено для выделений, которые могут не выполняться непрерывно. Таким образом, физические адреса, представленные в отслеживании грязное битов, состоят из коллекции диапазонов, представляющих распределение, с которым выполняется работа. DxgkDdiCreateMemoryBasis возвращает дескриптор в ссылку KMD для отслеживания этих диапазонов.

KMD может полагаться на следующие инварианты:

  • Для каждого диапазона в диапазонеSegmentOffset и (SegmentOffset + SizeInBytes — 1) представляют допустимые адреса сегмента, на который ссылается SegmentId.

  • Все диапазоны несвязаны по паре; то есть пересечение между любыми двумя диапазонами всегда равно NULL.

Кроме того, часто segmentOffset и SizeInBytes учитывают определенные выравнивания страниц, если созданная база памяти используется в определенных грязное отслеживания DIS. Эти значения описаны на справочной странице DDI и всегда кратны DXGK_DIRTY_BIT_TRACKING_SEGMENT_CAPS::P ageSize.

В противном случае Dxgkrnl не гарантирует порядок адресов в коллекции диапазонов или связанных гарантий.

Дополнительные сведения см. в разделе Отслеживание грязных битов.

Требования

Требование Значение
Минимальная версия клиента Windows 11 версии 24H2 (WDDM 3.2)
Верхняя часть d3dkmddi.h
IRQL PASSIVE_LEVEL

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

DXGKARG_CREATEMEMORYBASIS

DxgkDdiDetadataMemoryBasis