共用方式為


DXGKDDI_NOTIFYWORKSUBMISSION回呼函式 (d3dkmddi.h)

重要

某些資訊與發行前版本產品有關,在發行前版本產品可能經過大幅修改。 Microsoft未就此處提供的資訊提供任何明示或默示擔保。

DxgkDdiNotifyWorkSubmission 函式會通知 KMD UMD 已提交新工作。

語法

DXGKDDI_NOTIFYWORKSUBMISSION DxgkddiNotifyworksubmission;

NTSTATUS DxgkddiNotifyworksubmission(
  INOUT_PDXGKARG_NOTIFYWORKSUBMISSION pArgs
)
{...}

參數

pArgs

[in]DXGKARG_NOTIFYWORKSUBMISSION 結構的指標,識別提交工作所在的硬體佇列。

傳回值

DxgkDdiNotifyWorkSubmission 必須成功並傳回STATUS_SUCCESS。

言論

在使用者模式工作提交模型中,KMD 不會參與工作提交,因此在硬體佇列上提交新工作時通常不會察覺。 此因素是低延遲工作提交路徑的主要動機。 不過,在某些利基案例和硬體限制中,每當硬體佇列上提交工作時,KMD 都必須收到通知。 例如,當實時內容提交工作時,GPU 硬體排程器需要 KMD 將硬體 Runlist 從一般切換為即時。 如果 KMD 未參與工作提交,則無法立即觸發 Runlist 參數,這會導致延遲即時工作執行。

若要解決此問題,KMD 可以在 門鈴建立時間,將門鈴聯機狀態指定為D3DDDI_DOORBELL_STATUS_CONNECTED_NOTIFY。 每當 UMD 看到此門鈴狀態時,它會調整其工作提交工作流程,使得在撰寫新的命令並響鈴之後,會使用 D3DKMTNotifyWorkSubmission呼叫核心。 Dxgkrnl 透過 DxgkDddiNotifyWorkSubmission將此呼叫轉送至 KMD。

DxgkDdiNotifyWorkSubmission 是從 UMD 到 Dxgkrnl 到 KMD 的簡單 Ping,通知後者特定硬體佇列上已提交新工作,讓 KMD 能夠起始特定動作,例如將 Runlist 切換為即時。

KMD 也可以在建立門鈴之後動態要求通知。 如果 KMD 偵測到應該在此硬體佇列上收到工作提交通知的條件,則必須先呼叫 DxgkCbDisconnectDoorbell 狀態D3DDDI_DOORBELL_STATUS_DISCONNECTED_RETRY來中斷門鈴的連線。 稍後,當 UMD 嘗試重新連線門鈴時,KMD 可以透過狀態D3DDDI_DOORBELL_STATUS_CONNECTED_NOTIFY進行連線。

驅動程式應該在非常特定且不頻繁的情況下使用此機制,因為它牽涉到每個工作提交的 UMD 到 KMD 的來回行程,如果用於廣泛的案例,則會失敗低延遲使用者模式提交模型的用途。

如需詳細資訊,請參閱 使用者模式工作提交

要求

要求 價值
最低支援的用戶端 Windows 11 版本 24H2 (WDDM 3.2)
標頭 d3dkmddi.h
IRQL PASSIVE_LEVEL

另請參閱

DXGKARG_NOTIFYWORKSUBMISSION

**DxgkDdiCreateDoorbell

DxgkCbDisconnectDoorbell