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 表示地址范围0x100000 0x102000) (页 100、101 和 102。

Pages

用于非连续的 ADL。 如果未设置 Flags.Contiguous,Pages指向一个完全包含 PageCount 页面的数组。 数组中的页面不保证是连续的。

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

注解

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

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

要求

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

另请参阅

DXGK_ADL_FLAGS