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_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 |