共用方式為


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來描述連續記憶體範圍,而不是分散的頁面。 只有當 hAdapterMemoryObj ect 所代表的實體記憶體物件已配置為 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