DXGKDDI_PREEMPTCOMMAND fonction de rappel (d3dkmddi.h)
La fonction DxgkDdiPreemptCommand préempt une mémoire tampon d’accès direct à la mémoire (DMA) précédemment envoyée à l’unité d’exécution de commande matérielle et actuellement mise en file d’attente.
Syntaxe
DXGKDDI_PREEMPTCOMMAND DxgkddiPreemptcommand;
NTSTATUS DxgkddiPreemptcommand(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_PREEMPTCOMMAND pPreemptCommand
)
{...}
Paramètres
[in] hAdapter
Handle vers un bloc de contexte associé à un adaptateur d’affichage. Le pilote miniport d’affichage a précédemment fourni ce handle au sous-système du noyau graphique Microsoft DirectX dans le MiniportDeviceContext paramètre de sortie de la fonction DxgkDdiAddDevice.
[in] pPreemptCommand
Pointeur vers une structure DXGKARG_PREEMPTCOMMAND qui décrit la commande utilisée pour préempter une mémoire tampon DMA précédemment envoyée à l’unité d’exécution de commande matérielle.
Valeur de retour
Retourne STATUS_SUCCESS une fois l’opération terminée. Si le pilote retourne plutôt un code d’erreur, le système d’exploitation provoque une vérification de bogue système. Pour plus d’informations, consultez la section Remarques suivante.
Remarques
Si le pilote détermine que le matériel est déjà terminé de traiter toutes les mémoires tampons DMA envoyées, et que le matériel a informé le planificateur de l’unité de traitement graphique (GPU) sur les achèvements- lorsque son DxgkDdiPreemptCommand fonction est appelée pour préempter les mémoires tampons DMA, le pilote doit effectuer les opérations suivantes au lieu de soumettre la clôture prédéfinie identifiée par le PreemptionFenceId membre de DXGKARG_PREEMPTCOMMAND au matériel :
- Augmentez le niveau d’interruption IRQL. Par exemple, le pilote peut appeler la fonction DxgkCbSynchronizeExecution pour la synchroniser avec sa fonction DxgkDdiInterruptRoutine.
-
Informez le planificateur GPU sur les informations de préemption. Le pilote peut appeler directement la fonction DxgkCbNotifyInterrupt ou appeler directement sa fonction DxgkDdiInterruptRoutine (par exemple, si le pilote doit également effectuer d’autres mises à jour).
Notez que le planificateur GPU gère les instances où le matériel a cessé de répondre en raison du travail TDR (Timeout Detection and Recovery).
- 0x2
- Code d’erreur NTSTATUS retourné par l’appel de pilote ayant échoué
- Pointeur vers la structure DXGKARG_PREEMPTCOMMAND
- Pointeur vers une structure de données du planificateur interne
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista |
plateforme cible | Bureau |
d’en-tête | d3dkmddi.h |
IRQL | DISPATCH_LEVEL |