DXGK_ADL结构(d3dkmddi.h)
DXGK_ADL 结构是地址描述符列表(ADL),用于描述可以是物理或逻辑的页面数组。
语法
typedef struct _DXGK_ADL {
UINT32 PageCount;
DXGK_ADL_FLAGS Flags;
union {
DXGK_PAGE_NUMBER BasePageNumber;
const DXGK_PAGE_NUMBER *Pages;
};
} DXGK_ADL;
成员
PageCount
ADL 表示的页数。
Flags
指定 ADL 标志的 DXGK_ADL_FLAGS 结构。
BasePageNumber
用于连续 ADL。 设置 Flags.Contiguous 时,BasePageNumber 是连续内存范围的初始页码,PageCount 表示的页数。 例如,如果 PageCount=3 和 BasePageNumber=100,则 DXGK_ADL 表示页面 100、101 和 102(地址范围0x100000-0x102000)。
Pages
用于非连续 ADL。 如果未设置 Flags.Contiguous,Pages 指向一个完全 PageCount 页的数组。 数组中的页面不能保证是连续的。
Pages 的类型为 DXGK_PAGE_NUMBER,保证其大小与 PFN_NUMBER相同。 在对硬件进行编程时,可以将此数组替换为 MDL 的 PFN 数组。
言论
Dxgkernel 提供 ADL 以支持物理和逻辑访问模式,并能够在运行时无缝切换这两种模式。 ADL 与 MDL 非常相似,但描述可以是物理页面或逻辑页面数组。 由于这些页可以是逻辑页,因此不能将 ADL 描述的地址映射到虚拟地址进行直接 CPU 访问。
有关详细信息,请参阅 IOMMU DMA 重新映射。
要求
要求 | 价值 |
---|---|
支持的最低服务器 | Windows Server 2022 |
标头 | d3dkmddi.h |