DXGKDDI_CREATEMEMORYBASIS回呼函式 (d3dkmddi.h)
KMD 的 DxgkDdiCreateMemoryBasis 函式會為記憶體範圍的集合建立句柄,代表在中途位追蹤期間所操作的配置。
語法
DXGKDDI_CREATEMEMORYBASIS DxgkddiCreatememorybasis;
HANDLE DxgkddiCreatememorybasis(
IN_CONST_HANDLE hAdapter,
IN_CONST_PDXGKARG_CREATEMEMORYBASIS pArgs
)
{...}
參數
hAdapter
[in]與顯示配接器相關聯的內容區塊句柄。 KMD 先前在 DxgiDdiAddDevice 函式的 MiniportDeviceContext 輸出參數中,將此句柄提供給 Dxgkrnl。
pArgs
[in]包含所建立基礎資訊的 DXGKARG_CREATEMEMORYBASIS 結構的指標。
傳回值
DxgkDdiCreateMemoryBasis 會傳回對 KMD 參考的 HANDLE,以追蹤範圍的集合。 KMD 應該能夠在 DxgkDdiDestroyMemoryBasis 之類的後續命令中,將此資訊轉換成基礎的資訊。
備註
VRAM 上的修改作業追蹤適用於可能不連續支援的配置。 因此,追蹤中途位中所代表的實體位址是由代表所操作配置的範圍集合所組成。 DxgkDdiCreateMemoryBasis 會傳回 KMD 參考的句柄,以追蹤這些範圍。
KMD 可以依賴下列不變量:
對於 Ranges 中的每個範圍, SegmentOffset 和 (SegmentOffset + SizeInBytes - 1) 代表 SegmentId 所參考區段的有效位址。
所有 範圍 都是不相交的;也就是說,任何兩個範圍之間的交集一律為 Null。
當建立的記憶體基礎用於特定中途追蹤 DIS 時, SegmentOffset 和 SizeInBytes 也會遵守特定的頁面對齊方式。 這些值會在這些 DDI 的參考頁面上描述,而且一律是 DXGK_DIRTY_BIT_TRACKING_SEGMENT_CAPS::P ageSize 的倍數。
Dxgkrnl 否則不會保證 Ranges 集合中位址的排序或相關保證。
如需詳細資訊,請參閱 中途位追蹤。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 11 版本 24H2 (WDDM 3.2) |
標頭 | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |