DXGKDDI_PREEMPTCOMMAND funzione di callback (d3dkmddi.h)
La funzione DxgkDdiPreemptCommand annulla un buffer DMA (Direct Memory Access) inviato in precedenza e attualmente accodato nell'unità di esecuzione dei comandi hardware.
Sintassi
DXGKDDI_PREEMPTCOMMAND DxgkddiPreemptcommand;
NTSTATUS DxgkddiPreemptcommand(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_PREEMPTCOMMAND pPreemptCommand
)
{...}
Parametri
[in] hAdapter
Handle di un blocco di contesto associato a una scheda di visualizzazione. Il driver miniport di visualizzazione precedentemente fornito questo handle al sottosistema kernel della grafica Microsoft DirectX nel MiniportDeviceContext parametro di output della funzione DxgkDdiAddDevice.
[in] pPreemptCommand
Puntatore a una struttura DXGKARG_PREEMPTCOMMAND che descrive il comando usato per anteporre un buffer DMA inviato in precedenza all'unità di esecuzione del comando hardware.
Valore restituito
Restituisce STATUS_SUCCESS al completamento corretto. Se il driver restituisce invece un codice di errore, il sistema operativo causa un controllo errori del sistema. Per altre informazioni, vedere la sezione Osservazioni seguente.
Osservazioni
Se il driver determina che l'hardware è già stato completato l'elaborazione di tutti i buffer DMA inviati, e che l'hardware ha informato l'utilità di pianificazione dell'unità di elaborazione grafica (GPU) sui completamenti, quando la relativa DxgkDdiPreemptCommand funzione viene chiamata per impedire i buffer DMA, Il driver deve eseguire le operazioni seguenti anziché inviare il limite di precedenza identificato dall'PreemptionFenceId membro di DXGKARG_PREEMPTCOMMAND all'hardware:
- Aumentare il livello di interruzione di IRQL. Ad esempio, il driver può chiamare la funzione dxgkCbSynchronizeExecution per la sincronizzazione con la relativa funzione DxgkDdiInterruptRoutine.
-
Informare l'utilità di pianificazione GPU sulle informazioni di precedenza. Il driver può chiamare direttamente la funzione DxgkCbNotifyInterrupt oppure chiamare direttamente la funzione DxgkDdiInterruptRoutine (ad esempio, se il driver deve eseguire anche altri aggiornamenti).
Si noti che l'utilità di pianificazione GPU gestisce le istanze in cui l'hardware ha smesso di rispondere a causa del lavoro TDR (Timeout Detection and Recovery).
- 0x2
- Codice di errore NTSTATUS restituito dalla chiamata al driver non riuscito
- Puntatore alla struttura DXGKARG_PREEMPTCOMMAND
- Puntatore a una struttura di dati dell'utilità di pianificazione interna
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows Vista |
piattaforma di destinazione | Desktop |
intestazione | d3dkmddi.h |
IRQL | DISPATCH_LEVEL |