DXGKARGCB_ALLOCATE_ADL 結構 (d3dkmddi.h)

DXGKARGCB_ALLOCATE_ADL 包含 DXGKCB_ALLOCATEADL 回呼函式用來建立位址描述元清單 (ADL) 的資訊。

語法

typedef struct _DXGKARGCB_ALLOCATE_ADL {
  [in]  HANDLE   hAdapterMemoryObject;
  [in]  SIZE_T   Offset;
  [in]  SIZE_T   Size;
  union {
    struct {
      UINT32 RequireContiguous : 1;
      UINT32 PreferContiguous : 1;
      UINT32 Reserved : 30;
    };
          UINT32 Value;
  } Flags;
  [out] DXGK_ADL *pAdl;
} DXGKARGCB_ALLOCATE_ADL;

成員

[in] hAdapterMemoryObject

配接器記憶體物件,描述用來建置 ADL 的基礎邏輯記憶體。 此對像是透過 DXGKCB_CREATEPHYSICALMEMORYOBJECT 或更新版本透過 DXGKCB_OPENPHYSICALMEMORYOBJECT 建立的。

[in] Offset

從實體記憶體物件的開頭開始的位移,以位元組為單位。 這個值必須是PAGE_SIZE的倍數。

[in] Size

要配置給 ADL 的位元組總數。 此值必須是PAGE_SIZE的倍數,因此 ADL 中的頁數將會 是 Size/PAGE_SIZE。

Flags

[in] Flags.RequireContiguous

表示驅動程式要求ADL來描述連續記憶體範圍,而不是散佈的頁面。 只有當 hAdapterMemoryObject 所代表的實體記憶體物件配置為 DXGK_PHYSICAL_MEMORY_TYPE_CONTIGUOUS_MEMORYDXGK_PHYSICAL_MEMORY_TYPE_IO_SPACE時,此旗標才有效。

[in] Flags.PreferContiguous

盡可能提供驅動程式以最佳方式要求連續ADL。 啟用 DMA 重新對應時,ADL 會參考邏輯位址空間的範圍;不過,驅動程式可能無法在所有程式代碼路徑中使用連續的 ADL。 邏輯記憶體的非連續ADL可能會變得昂貴,因為它們需要配置與MDL類似的個別 PFN 陣列,以代表記憶體。 可能的話,驅動程式應該指定此旗標,以指出ADL只能以基位址表示。

[in] Flags.Reserved

保留;必須設定為零。

[in] Flags.Value

存取位的替代方式。

[out] pAdl

在成功呼叫 DXGKCB_ALLOCATEADL時,指向 DXGK_ADL 結構,其中包含可用來設計硬體的頁面位址清單。

備註

如需詳細資訊 ,請參閱 IOMMU DMA 重新對應

規格需求

需求
最低支援的伺服器 Windows Server 2022 (WDDM 2.9)
標頭 d3dkmddi.h

另請參閱

DXGKCB_ALLOCATEADL

DXGKCB_CREATEPHYSICALMEMORYOBJECT

DXGKCB_OPENPHYSICALMEMORYOBJECT