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_MEMORY 或 DXGK_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 |