DXGKDDI_PREEMPTCOMMAND回呼函式 (d3dkmddi.h)
DxgkDdiPreemptCommand 函式會先佔直接記憶體存取, (DMA) 緩衝區,該緩衝區先前已提交至硬體命令執行單位目前已排入佇列。
語法
DXGKDDI_PREEMPTCOMMAND DxgkddiPreemptcommand;
NTSTATUS DxgkddiPreemptcommand(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_PREEMPTCOMMAND pPreemptCommand
)
{...}
參數
[in] hAdapter
與顯示配接器相關聯的內容區塊句柄。 顯示迷你埠驅動程式先前已將此句柄提供給 DxgkDdiAddDevice 函式之 MiniportDeviceContext 輸出參數中的 Microsoft DirectX 圖形核心子系統。
[in] pPreemptCommand
DXGKARG_PREEMPTCOMMAND 結構的指標,描述用來先占先前提交至硬體命令執行單位之 DMA 緩衝區的命令。
傳回值
成功完成時 傳回STATUS_SUCCESS 。 如果驅動程式改為傳回錯誤碼,操作系統會導致發生系統錯誤檢查。 如需詳細資訊,請參閱接下來的<備註>一節。
備註
如果驅動程式判斷硬體已完成所有提交的 DMA 緩衝區處理,而且硬體已通知圖形處理單位 (GPU) 排程器完成--當呼叫 其 DxgkDdiPreemptCommand 函式以先佔 DMA 緩衝區時, 驅動程式應該執行下列作業,而不是提交 preemptionFenceId 成員所識別的先佔柵欄 DXGKARG_PREEMPTCOMMAND 硬體:
- 引發 IRQL 以中斷層級。 例如,驅動程式可以呼叫 DxgkCbSynchronizeExecution 函 式來與其 DxgkDdiInterruptRoutine 函式同步處理。
-
通知 GPU 排程器有關先占資訊。 驅動程式可以直接呼叫 DxgkCbNotifyInterrupt 函式,或呼叫其 DxgkDdiInterruptRoutine 函式 (例如,如果驅動程式必須執行其他更新以及) 。
請注意,GPU 排程器會處理硬體因逾時偵測和復原 (TDR) 運作而停止回應的實例。
- 0x2
- 從失敗的驅動程式呼叫傳回的NTSTATUS錯誤碼
- DXGKARG_PREEMPTCOMMAND 結構的指標
- 內部排程器數據結構的指標
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
目標平台 | 桌面 |
標頭 | d3dkmddi.h |
IRQL | DISPATCH_LEVEL |