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.ContiguousPages 指向一个完全 PageCount 页的数组。 数组中的页面不能保证是连续的。

Pages 的类型为 DXGK_PAGE_NUMBER,保证其大小与 PFN_NUMBER相同。 在对硬件进行编程时,可以将此数组替换为 MDL 的 PFN 数组。

言论

Dxgkernel 提供 ADL 以支持物理和逻辑访问模式,并能够在运行时无缝切换这两种模式。 ADL 与 MDL 非常相似,但描述可以是物理页面或逻辑页面数组。 由于这些页可以是逻辑页,因此不能将 ADL 描述的地址映射到虚拟地址进行直接 CPU 访问。

有关详细信息,请参阅 IOMMU DMA 重新映射

要求

要求 价值
支持的最低服务器 Windows Server 2022
标头 d3dkmddi.h

另请参阅

DXGK_ADL_FLAGS