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


структура DXGK_ALLOCATIONLIST (d3dkmddi.h)

Структура DXGK_ALLOCATIONLIST описывает спецификацию выделения, которая используется для буферизации прямого доступа к памяти (DMA).

Синтаксис

typedef struct _DXGK_ALLOCATIONLIST
{
    HANDLE              hDeviceSpecificAllocation;
    struct
    {
        UINT            WriteOperation  : 1;    // 0x00000001
        UINT            SegmentId       : 5;    // 0x0000002E
        UINT            Reserved        : 26;   // 0xFFFFFFC0
    };
#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
    union
    {
        PHYSICAL_ADDRESS        PhysicalAddress;
        D3DGPU_VIRTUAL_ADDRESS  VirtualAddress;
    };
#else // (DXGKDDI_INTERFACE_VERSION < DXGKDDI_INTERFACE_VERSION_WDDM2_0)
    PHYSICAL_ADDRESS    PhysicalAddress;
#endif // (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0)
} DXGK_ALLOCATIONLIST;

Члены

[in/out] hDeviceSpecificAllocation

Открытый дескриптор выделения, на который ссылается ссылка (т. е. дескриптор, возвращенный драйвером в элементе hDeviceSpecificAllocationDXGK_OPENALLOCATIONINFO структуры для выделения в вызове функции DxgkDdiOpenAllocation драйвера).

[in/out] WriteOperation

Определяет, можно ли записать выделение. Если задать для этого элемента значение 1, выделение может быть записано в любом месте буфера DMA. Задание этого элемента эквивалентно установке первого бита 32-разрядного значения (0x00000001).

[in/out] SegmentId

Указывает идентификатор сегмента, в котором выделено последнее выделение. Установка для этого элемента значения 0 означает, что сведения о предварительном исправлении недоступны. Задание этого элемента эквивалентно установке второго-шестого бита 32-разрядного значения (0x0000002E).

[in] Reserved

Зарезервировано. Для этого элемента должно быть задано значение 0. Установка этого элемента эквивалентна установке оставшихся 26 бит (0xFFFFFFC0) 32-разрядного значения нулями.

[in/out] PhysicalAddress

PHYSICAL_ADDRESS тип данных (который определяется как LARGE_INTEGER), указывающий физический адрес в сегменте, указанном SegmentId, где выделено последнее выделение. Этот элемент имеет значение 0, если нет сведений о предварительном исправлении.

Поддерживается начиная с Windows 10.

[in/out] VirtualAddress

D3DGPU_VIRTUAL_ADDRESS тип данных (определяемый как ULONGLONG), указывающий виртуальный адрес.

Поддерживается начиная с Windows 10.

Комментарии

В функции DxgkDdiRender драйвера мини-порта дисплея драйвер создает список DXGK_ALLOCATIONLIST структур для спецификаций распределения, которые будут использоваться в буфере прямого доступа к памяти (DMA). Диспетчер видеопамятки использует список для правильного разделения и исправления буферов DMA.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Верхняя часть d3dkmddi.h (включая D3dkmddi.h)

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

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DXGK_OPENALLOCATIONINFO

DxgkDdiCreateAllocation

DxgkDdiOpenAllocation

DxgkDdiRender