DXGKDDI_PREEMPTCOMMAND fonction de rappel (d3dkmddi.h)
La fonction DxgkDdiPreemptCommand préempte une mémoire tampon d’accès direct à la mémoire (DMA) précédemment soumise à 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 paramètre de sortie MiniportDeviceContext de la fonction DxgkDdiAddDevice .
[in] pPreemptCommand
Pointeur vers une structure de DXGKARG_PREEMPTCOMMAND qui décrit la commande utilisée pour préempter une mémoire tampon DMA précédemment soumise à l’unité d’exécution de commande matérielle.
Valeur retournée
Retourne STATUS_SUCCESS en cas de réussite de l’exécution. Si le pilote retourne à la place un code d’erreur, le système d’exploitation provoque une vérification d’erreur système. Pour plus d'informations, consultez la section Notes qui suit.
Remarques
Si le pilote détermine que le matériel a 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) des achèvements lorsque sa fonction DxgkDdiPreemptCommand est appelée pour préempter les mémoires tampons DMA, le pilote doit effectuer les opérations suivantes au lieu d’envoyer la clôture préemptaire identifiée par le membre PreemptionFenceId de DXGKARG_PREEMPTCOMMAND au matériel :
- Augmentez IRQL au niveau d’interruption. Par exemple, le pilote peut appeler la fonction DxgkCbSynchronizeExecution pour se synchroniser avec sa fonction DxgkDdiInterruptRoutine .
-
Informez le planificateur GPU des informations de préemption. Le pilote peut appeler directement la fonction DxgkCbNotifyInterrupt ou appeler 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 de détection et de récupération du délai d’expiration (TDR).
- 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 de planificateur interne
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | d3dkmddi.h |
IRQL | DISPATCH_LEVEL |