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

(引用的分配的开放句柄,即驱动程序在调用驱动程序DxgkDdiOpenAllocation 函数时,在DXGK_OPENALLOCATIONINFO结构的 hDeviceSpecificAllocation 成员中为分配返回的句柄) 。

[in/out] WriteOperation

标识分配是否可以写入。 将此成员设置为 1 表示可将分配写入 DMA 缓冲区中的任意位置。 设置此成员等效于 (0x00000001) 设置 32 位值的第一位。

[in/out] SegmentId

指定分配最后一次分页的段的标识符。 将此成员设置为 0 表示没有可用的预修补信息。 设置此成员等效于 (0x0000002E) 设置 32 位值的第二位到第六位。

[in] Reserved

保留。 此成员应设置为 0。 设置此成员等效于将 32 位值的剩余 26 位 (0xFFFFFFC0) 设置为零。

[in/out] PhysicalAddress

PHYSICAL_ADDRESS数据类型 (定义为指示 SegmentId 指定的段内的物理地址的LARGE_INTEGER) ,其中最后一次分页。 如果没有可用的预修补信息,则此成员设置为零。

从 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