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 |