與 KMD 共用備份儲存區

從 Windows 11 22H2 版開始,WDDM API 已擴充為允許從核心模式驅動程式存取圖形配置支援存放區, (KMD) 。 使用此 API 時,使用者模式驅動程式 (UMD) 和 KMD 都可以存取相同的配置記憶體。 當UMD在主機上執行或使用 GPU 參數化 (GPU-PV) 的虛擬機時,可以使用此功能。

這項功能已回移植到 Windows 10 20H1 版。 DDI 適用於 WDDM 3.1 驅動程式或更新版本。

WDDM 圖形配置與備份儲存區

WDDM 模型中的每個圖形配置都有一個備份儲存區,這是一個認可的記憶體緩衝區,會在配置內容不在視訊記憶體中時保留該配置內容。

圖形配置是藉由呼叫 D3DKMTCreateAllocation 來建立。 UMD 會傳遞此配置的私人數據, Dxgkrnl 會透過呼叫來傳遞至 KMD DXGKDDI_CREATEALLOCATION。 KMD 會將所需的配置旗標傳回 Dxgkrnl

檢查功能可用性

若要檢查備份儲存區共用功能是否可用,KMD 必須先呼叫下列其中一個回呼, 並將 FeatureId 設定為 DXGK_FEATURE_SHARE_BACKING_STORE_WITH_KMD

只有在回呼成功且 Enable 設定為 TRUE 時,才能使用此功能。

功能流程

一旦 KMD 成功判斷已啟用此功能,UMD 會呼叫 D3DKMTCreateAllocation 來建立共用的 CPU 可見配置,並透過私人數據指示 KMD 與 KMD 共用配置。 在此呼叫過程中,會發生下列情況:

配置的屬性

以此方式建立的設定必須具有下列屬性:

  • 配置只允許在系統記憶體區段中。
  • 配置必須建立為共用。
  • 配置無法使用現有的系統記憶體作為備份儲存區。
  • UMD 可以針對一般配置執行任何作業。