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


структура 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

Открытый дескриптор выделения, на который ссылается (т. е. дескриптор, возвращаемый драйвером в hDeviceSpecificAllocation член структуры DXGK_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 указывает, где выделение было последней страницы в. Этот элемент равен нулю, если нет сведений о предварительном исправлении.

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

[in/out] VirtualAddress

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

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

Замечания

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
заголовка d3dkmddi.h (include D3dkmddi.h)

См. также

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DXGK_OPENALLOCATIONINFO

DxgkDdiCreateAllocation

DxgkDdiOpenAllocation

DxgkDdiRender