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) |