Condividi tramite


DXGKDDI_SUSPENDCONTEXT funzione di callback (d3dkmddi.h)

DxgkddiSuspendContext indica alla GPU di sospendere un contesto. Se la GPU non riconosce il completamento della sospensione entro il timeout del timeout (rilevamento e ripristino del timeout), 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 precedenza non ha un periodo di tolleranza e dovrebbe essere 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 viene impostato su STATUS_PENDING e l'operazione di sospensione verrà completata quando contextSuspendFence viene segnalato tramite un interrupt.

Osservazioni

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 potenza 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 di nuovo 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 siano passati dalla 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, nessun comando di cambio di contesto NULL separato (indicato in precedenza dalla ContextSwitch flag in DxgkDdiSubmitCommandVirtual) è presente in modalità di pianificazione WDDM 2.4, perché DxgkddiSuspendContext dovrebbe eseguire questo lavoro.

Fabbisogno

Requisito Valore
intestazione d3dkmddi.h

Vedere anche

DxgkddiResumeContext

DXGKARG_SUSPENDCONTEXT