DXGKCB_CREATECONTEXTALLOCATION回呼函式 (d3dkmddi.h)

DXGKCB_CREATECONTEXTALLOCATION 配置 GPU 內容或裝置特定內容。

語法

DXGKCB_CREATECONTEXTALLOCATION DxgkcbCreatecontextallocation;

NTSTATUS DxgkcbCreatecontextallocation(
  [in/out] INOUT_PDXGKARGCB_CREATECONTEXTALLOCATION unnamedParam1
)
{...}

參數

[in/out] unnamedParam1

DXGKARGCB_CREATECONTEXTALLOCATION 結構的指標,指定要配置的內容屬性。

傳回值

如果成功,DXGKCB_CREATECONTEXTALLOCATION會傳回STATUS_SUCCESS。 否則,它會傳回 Ntstatus.h 中定義的其中一個錯誤碼。

備註

從 WDDM 1.2 開始,顯示迷你埠驅動程式可以配置 GPU 特定內容 (GPU 內容設定) 或裝置特定內容 (裝置內容設定) 。

GPU 內容配置可讓 GPU 儲存在執行中間的 DMA 緩衝區的內容狀態。 驅動程式會建立與 GPU 內容相關聯的配置,以在必要時儲存其狀態。 操作系統可確保內容配置會放在 GPU 的硬體執行佇列中,才能在此內容中放置命令。 內容會保留在內,直到來自另一個內容的命令放在硬體執行佇列中為止。

此外,操作系統支援延遲 GPU 內容切換,方法是在完成屬於內容的命令之後,假設硬體內容狀態會保留在 GPU 上。 如此一來,只有在從不同內容提交至硬體佇列的命令時,才會在 GPU 上切換內容。

DXGKCB_XXX 函式是由 Dxgkrnl 實作。 若要使用此回呼函式,請設定 DXGKARGCB_ALLOCATEPAGESFORMDL 的成員,然後透過 DXGKRNL_INTERFACE 呼叫 DxgkCbCreateContextAllocation

GPU 內容配置

GPU 內容配置只能針對非系統內容進行。 顯示迷你埠驅動程式會呼叫 DxgkDdiCreateContext 來建立這些內容。 若要建立非系統內容,驅動程式會將 DXGK_CREATECONTEXTFLAGS 結構的 SystemContext 成員設定為零,並在 pCreateContext 參數中傳遞這個結構的指標。

裝置內容配置會遵循類似的模型,不同之處在於它會保留在與相關聯裝置所屬的任何內容中。 此模型可讓驅動程式使用 GPU 內容設定來儲存 GPU 內容儲存區域 (CSA) 資料,以及使用裝置內容配置來儲存分頁表數據。

裝置內容配置

裝置內容配置只能針對非系統裝置進行。 顯示迷你埠驅動程式會呼叫 DxgkDdiCreateDevice 來建立這些裝置。 若要建立非系統裝置,驅動程式會將 DXGK_CREATEDEVICEFLAGS 結構的 Flags.SystemDevice 成員設定為零,並在 pCreateDevice 參數中傳遞這個結構的指標。

顯示迷你埠驅動程式會呼叫 DXGKCB_DESTROYCONTEXTALLOCATION ,以釋放透過 DxgkCbCreateContextAllocation 配置的內容資源。

目的地內容配置的虛擬位址

若要確保操作系統為DXGKARG_BUILDPAGINGBUFFER結構) 的目的地內容配置設定有效的 (非 NULL) 虛擬位址, (InitContextResource-Destination-VirtualAddress>> 成員) 時,當顯示迷你埠驅動程式呼叫 DxgkCbCreateContextAllocation 時,它必須:

規格需求

需求
最低支援的用戶端 Windows 8 (WDDM 1.2)
最低支援的伺服器 Windows Server 2012
目標平台 桌面
標頭 d3dkmddi.h (include D3dkmddi.h)
IRQL PASSIVE_LEVEL

另請參閱

DXGK_ALLOCATIONINFOFLAGS

DXGK_CREATECONTEXTFLAGS

DXGK_CREATEDEVICEFLAGS

DXGKARG_BUILDPAGINGBUFFER

DXGKARGCB_CREATECONTEXTALLOCATION

DXGKCB_DESTROYCONTEXTALLOCATION

DxgkDdiCreateContext

DxgkDdiCreateDevice

DXGKRNL_INTERFACE