DXGK_ALLOCATIONINFO結構(d3dkmddi.h)
DXGK_ALLOCATIONINFO 結構描述建立配置的參數。
語法
typedef struct _DXGK_ALLOCATIONINFO {
VOID *pPrivateDriverData;
UINT PrivateDriverDataSize;
union {
UINT Alignment;
struct {
UINT16 MinimumPageSize;
UINT16 RecommendedPageSize;
};
};
SIZE_T Size;
SIZE_T PitchAlignedSize;
DXGK_SEGMENTBANKPREFERENCE HintedBank;
DXGK_SEGMENTPREFERENCE PreferredSegment;
union {
UINT SupportedReadSegmentSet;
UINT MmuSet;
};
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]私用數據區塊的指標。 此數據適用於每個配置,且與
PrivateDriverDataSize
[in]pPrivateDriverData 中私用數據區塊的大小,以位元組為單位。
Alignment
[out]配置所需的對齊方式,以位元組為單位。
MinimumPageSize
RecommendedPageSize
Size
[out]配置所需的大小,以位元組為單位。 大小值會擴充為原生主機頁面大小的倍數(例如 x86 架構上的 4 KB)。 KMD 會指定視訊記憶體管理員的配置大小(VidMm)。
PitchAlignedSize
[out]配置的大小,以位元組為單位,在位對齊線段時,由區段的 PitchAlignment 位欄位字段旗標所指定,Flags 區段 DXGK_SEGMENTDESCRIPTOR 結構的成員。 如果在音調對齊的區段中不支援配置(GPU 通常不支援這種類型的區段),驅動程式應將 PitchAlignedSize 中的值設定為零。 如果驅動程式在 PitchAlignedSize中指定非零值,則值必須大於或等於 Size 成員中的值。
HintedBank
[out]DXGK_SEGMENTBANKPREFERENCE 結構,指定 KMD 的銀行訂購喜好設定,VidMm 用來分頁配置。 如果指定此成員,VidMm 會使用最慣用區段的銀行資訊,這是由 PreferredSegment 成員所指定之 DXGK_SEGMENTPREFERENCE 結構的 SegmentId0 成員所指定。
PreferredSegment
[out]DXGK_SEGMENTPREFERENCE 結構,指出 VidMm 用於配置頁面的 KMD 要求慣用區段標識碼。
SupportedReadSegmentSet
[out]KMD 可以在讀取作業 PreferredSegment 成員中設定的區段標識符。 這些標識碼所指出的區段是 KMD 要求 VidMm 用來分頁配置讀取作業,而不論效能為何。 設定位 0 表示支援第一個區段,設定位 1 表示支援第二個區段等等。
KMD 只能針對讀取作業支援的區段設定喜好設定。 VidMm 判斷提示驅動程式是否嘗試在 PreferredSegment 成員中設定不支援區段的喜好設定。
MmuSet
SupportedWriteSegmentSet
[out]KMD 可以在寫入作業 PreferredSegment 成員中設定的區段標識符。 這些標識碼所指出的區段是 KMD 要求 VidMm 用來分頁寫入作業的配置,不論效能為何。 設定位 0 表示支援第一個區段,設定位 1 表示支援第二個區段等等。
KMD 只能針對寫入作業支援的區段設定喜好設定。 VidMm 判斷提示驅動程式是否嘗試在 PreferredSegment 成員中設定不支援區段的喜好設定。
EvictionSegmentSet
[out]可用於收回之區段的標識碼。 設定位 0 表示第一個區段可用於收回,設定位 1 表示第二個區段可用於收回等。
只有光圈區段可由這個成員指定。 如果驅動程式指定要用於收回的有效區段,VidMm 嘗試在這些光圈區段中配置資源,以加速收回程式。 如果驅動程式指定 0,VidMm 呼叫驅動程式,將配置的內容直接傳輸到分頁鎖定的系統記憶體,而不需透過光圈區段對應基礎頁面。
MaximumRenamingListLength
[out]配置重新命名清單的最大長度。 如需重新命名清單的詳細資訊,請參閱 要求重新命名設定。
此成員的支援始於 Windows 10 和 WDDM v2。
PhysicalAdapterIndex
[out]實體配接器的索引。
此成員的支援始於 Windows 10 和 WDDM v2。
hAllocation
[out]配置句柄。 KMD 必須將這個成員設定為值,這個值可用來參考其配置的私人追蹤結構。
Flags
[out]DXGK_ALLOCATIONINFOFLAGS 結構,識別位字段旗標中配置的屬性。 這些屬性表示要建立的配置類型。 KMD 會針對 VidMm指定這些旗標。 以WDDM 2.0 之前的 WDDM 版本為目標的驅動程序應該使用 旗標;以任何 WDDM 版本為目標的驅動程式 >= WDDM 2.0 應該使用 FlagsWddm2。
FlagsWddm2
[out]DXGK_ALLOCATIONINFOFLAGS_WDDM2_0 結構,識別位字段旗標中配置的屬性。 這些屬性表示要建立的配置類型。 KMD 會針對 VidMm指定這些旗標。 以任何 WDDM 版本為目標的驅動程式 >= WDDM 2.0 應該使用 FlagsWddm2;以 WDDM 2.0 之前的 WDDM 版本為目標的驅動程式應該使用 旗標。
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 結構已變更,以便不再區分讀取和寫入區段集。 在介面建立期間,
忽略支援的讀取區段集並不表示不再支援它,但只是應該不再在這些集合之間有所差異,而且允許 VidMm 為單一區段集的任何配置選擇適當的區段。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista |
標頭 | d3dkmddi.h (包括 D3dkmddi.h) |