DXGK_ALLOCATIONINFO 結構 (d3dkmddi.h)
DXGK_ALLOCATIONINFO結構描述建立配置的參數。
語法
typedef struct _DXGK_ALLOCATIONINFO {
VOID *pPrivateDriverData;
UINT PrivateDriverDataSize;
UINT Alignment;
SIZE_T Size;
SIZE_T PitchAlignedSize;
DXGK_SEGMENTBANKPREFERENCE HintedBank;
DXGK_SEGMENTPREFERENCE PreferredSegment;
UINT SupportedReadSegmentSet;
UINT SupportedWriteSegmentSet;
UINT EvictionSegmentSet;
union {
UINT MaximumRenamingListLength;
UINT PhysicalAdapterIndex;
};
HANDLE hAllocation;
union {
DXGK_ALLOCATIONINFOFLAGS Flags;
DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 FlagsWddm2;
};
DXGK_ALLOCATIONUSAGEHINT *pAllocationUsageHint;
UINT AllocationPriority;
DXGK_ALLOCATIONINFOFLAGS2 Flags2;
} DXGK_ALLOCATIONINFO;
成員
pPrivateDriverData
[in]私人資料區塊的指標。 此資料適用于每個配置,而且與DXGKARG_CREATEALLOCATION結構中的pPrivateDriverData成員不同。 使用者模式顯示驅動程式可能會將此資料傳遞至顯示迷你埠驅動程式。 不過,如果 Microsoft DirectX 圖形核心子系統傳遞此資料來描述共用的主要或其他可鎖定表面,則會將資料當做 pAllocationInfo 成員中 pAllocationInfo 成員中陣列的第一個專案傳遞DXGKARG_CREATEALLOCATION。
PrivateDriverDataSize
[in] pPrivateDriverData中私用資料區塊的大小,以位元組為單位。
Alignment
[out]配置的必要對齊方式,以位元組為單位。
Size
[out]配置所需的大小,以位元組為單位。 大小值會擴充為原生主機頁面大小的倍數 (,例如 x86 架構上的 4 KB) 。 顯示迷你埠驅動程式會指定視訊記憶體管理員的配置大小。
PitchAlignedSize
[out]配置的大小,以位元組為單位,在位在間距對齊的區段中,此區段是由區段之flagsDXGK_SEGMENTDESCRIPTOR成員中的PitchAlignment位欄位旗標所指定。 如果間距對齊區段不支援配置 (圖形處理單位 [GPU] 通常不支援這種類型的區段) ,驅動程式應該將 PitchAlignedSize 中的值設定為零。 如果驅動程式在 PitchAlignedSize中指定非零值,該值必須大於或等於 Size 成員中的值。
HintedBank
[out] DXGK_SEGMENTBANKPREFERENCE 結構,指出顯示迷你埠驅動程式要求視訊記憶體管理員用於配置頁面的銀行訂購喜好設定。 如果指定此成員,視訊記憶體管理員會使用最慣用區段的銀行資訊,該區段是由PreferredSegment成員所指定之 DXGK_SEGMENTPREFERENCE結構的SegmentId0成員所指定。
PreferredSegment
[out] DXGK_SEGMENTPREFERENCE 結構,指出顯示迷你埠驅動程式要求視訊記憶體管理員用於配置分頁的慣用區段識別碼。
SupportedReadSegmentSet
[out]顯示迷你埠驅動程式可以在 PreferredSegment 成員中設定讀取作業的區段識別碼。 這些識別碼的區段指出顯示迷你埠驅動程式會要求視訊記憶體管理員在讀取作業配置中使用分頁的區段,而不論效能為何。 設定位 0 表示支援第一個區段,設定位 1 表示支援第二個區段等等。
顯示迷你埠驅動程式只能針對讀取作業支援的區段設定喜好設定。 如果驅動程式嘗試設定 PreferredSegment 成員中不支援區段的喜好設定,則視訊記憶體管理員會判斷提示。
SupportedWriteSegmentSet
[out]顯示迷你埠驅動程式可在 PreferredSegment 成員中設定寫入作業的區段識別碼。 這些識別碼的區段指出顯示迷你埠驅動程式會要求視訊記憶體管理員在寫入作業配置中使用分頁的區段,而不論效能為何。 設定位 0 表示支援第一個區段,設定位 1 表示支援第二個區段等等。
顯示迷你埠驅動程式只能針對寫入作業支援的區段設定喜好設定。 如果驅動程式嘗試設定 PreferredSegment 成員中不支援區段的喜好設定,則視訊記憶體管理員會判斷提示。
EvictionSegmentSet
[out]可用於收回的區段識別碼。 設定位 0 表示第一個區段可用於收回,設定位 1 表示第二個區段可用於收回等等。
只有光圈區段可以由這個成員指定。 如果驅動程式指定要用於收回的有效區段,視訊記憶體管理員會嘗試在這些光圈區段中配置資源,以加速收回程式。 如果驅動程式指定 0,視訊記憶體管理員會呼叫驅動程式,直接將配置的內容傳送至分頁鎖定的系統記憶體,而不需透過光圈區段對應基礎頁面。
MaximumRenamingListLength
[out]配置重新命名清單的最大長度。 如需重新命名清單的詳細資訊,請參閱 要求重新命名配置。
此成員的支援從 Windows 10 和 WDDM v2 開始。
PhysicalAdapterIndex
[out]實體配接器的索引。
此成員的支援從 Windows 10 和 WDDM v2 開始。
hAllocation
[out]配置的控制碼。 顯示迷你埠驅動程式必須將這個成員設定為可用來參考其私人追蹤結構以進行配置的值。
Flags
[out]識別位欄位旗標中配置之屬性 的DXGK_ALLOCATIONINFOFLAGS 結構。 這些屬性會指出要建立的配置類型。 顯示迷你埠驅動程式會指定視訊記憶體管理員的這些旗標。 以 WDDM 2.0 之前的 WDDM 版本為目標的驅動程式應該使用 Flags;以任何 WDDM 版本 > 為目標的驅動程式 = WDDM 2.0 應該使用 FlagsWddm2。
FlagsWddm2
[out] DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 結構,可識別位欄位旗標中配置的屬性。 這些屬性會指出要建立的配置類型。 顯示迷你埠驅動程式會指定視訊記憶體管理員的這些旗標。 以任何 WDDM 版本 > 為目標的驅動程式 = WDDM 2.0 應該使用 FlagsWddm2;以 WDDM 2.0 之前的 WDDM 版本為目標的驅動程式應該使用 Flags。
pAllocationUsageHint
[out]記憶體管理員用來判斷如何使用配置之 DXGK_ALLOCATIONUSAGEHINT 結構的指標。
AllocationPriority
[out]指定配置起始優先順序層級的 UINT 值。
驅動程式會決定每個配置的適當優先順序層級。 如需優先順序層級的詳細資訊,請參閱 pfnSetPriorityCb 函式的一節。 如果配置優先順序層級不是驅動程式的問題,驅動程式應該將所有優先順序層級設定為 D3DDDI_ALLOCATIONPRIORITY_NORMAL。 請注意,0 是不正確初始配置優先順序。
Flags2
[out]包含配置其他屬性 的DXGK_ALLOCATIONINFOFLAGS2 結構。 從 Windows 11 (WDDM 3.0) 開始支援。
備註
使用 WDDM v2 時, 已變更DXGK_ALLOCATIONINFO 結構,以便不再區分讀取和寫入區段集。 在介面建立期間,視訊記憶體管理員會忽略 SupportedReadSegmentSet 值,並且只使用 SupportedWriteSegmentSet所提供的區段集。 驅動程式應該確保此值正確代表配置可用於其預定用途的區段集。
忽略支援的讀取區段集並不表示不再支援它,但只表示這些集合之間不應該再有差異,而且允許視訊記憶體管理員為單一區段集的任何配置選擇適當的區段。
必要條件
最低支援的用戶端 | Windows Vista |
標頭 | d3dkmddi.h (include D3dkmddi.h) |