DXGKDDI_SUSPENDCONTEXT funzione di callback (d3dkmddi.h)

DxgkddiSuspendContext indica alla GPU di sospendere un contesto. Se la GPU non conferma il completamento della sospensione all'interno del timeout del timeout (rilevamento del timeout e del ripristino), il sistema operativo rileverà il timeout del motore ed eseguirà una reimpostazione del motore.

Sintassi

DXGKDDI_SUSPENDCONTEXT DxgkddiSuspendcontext;

NTSTATUS DxgkddiSuspendcontext(
  IN_CONST_HANDLE hAdapter,
  IN_CONST_PDXGKARG_SUSPENDCONTEXT pSuspendContext
)
{...}

Parametri

hAdapter

[in] Contesto hardware da anteporre e contrassegnato come sospeso. Questo tipo di richiesta di preemption non ha un periodo di tolleranza ed è previsto che venga rispettato dalla GPU il prima possibile.

pSuspendContext

[in] Puntatore a una struttura DXGKARG_SUSPENDCONTEXT che contiene argomenti aggiuntivi per questa funzione.

Valore restituito

DxgkddiSuspendContext restituisce STATUS_SUCCESS se il contesto è già sospeso al momento della chiamata. In caso contrario, questo valore è impostato su STATUS_PENDING e l'operazione di sospensione verrà completata quando contextSuspendFence viene segnalato tramite un interrupt.

Commenti

Registrare l'implementazione di questa funzione di callback impostandola in DRIVER_INITIALIZATION_DATA.

Anche se la precedenza round robin può essere avviata dalla GPU, il sistema operativo ha comunque bisogno di un modo per anteporre il contesto per altri motivi; ad esempio, se deve spostare le allocazioni o eseguire una transizione di alimentazione GPU.

Il valore di sospensione del contesto è necessario per gestire i casi in cui il sistema operativo sospende un contesto, non attende il riconoscimento di sospensione, riprende e sospende nuovamente un contesto. Il valore di sospensione consentirà al sistema operativo di distinguere tra l'acknowledgement di sospensione precedente e quello più recente.

Una volta sospeso un contesto, si presuppone che tutti i riferimenti a esso non siano più presenti nella GPU e che il sistema operativo sia libero di distruggere il contesto o spostarne la memoria. A differenza di WDDM 2.3 o versioni precedenti, non è presente alcun comando di opzione di contesto NULL separato (indicato in precedenza dal flag ContextSwitch in DxgkDdiSubmitCommandVirtual) è presente in modalità di pianificazione WDDM 2.4, perché DxgkddiSuspendContext dovrebbe eseguire questo lavoro.

Requisiti

Requisito Valore
Intestazione d3dkmddi.h

Vedi anche

DxgkddiResumeContext

DXGKARG_SUSPENDCONTEXT