DXGKDDI_SUSPENDCONTEXT fonction de rappel (d3dkmddi.h)

Demandez au GPU de suspendre un contexte. Si le GPU ne reconnaît pas l’achèvement de la suspension dans le délai d’attente TDR (détection et récupération du délai d’attente), le système d’exploitation détecte le délai d’expiration du moteur et effectue la réinitialisation du moteur.

Syntaxe

DXGKDDI_SUSPENDCONTEXT DxgkddiSuspendcontext;

NTSTATUS DxgkddiSuspendcontext(
  IN_CONST_HANDLE hAdapter,
  IN_CONST_PDXGKARG_SUSPENDCONTEXT pSuspendContext
)
{...}

Paramètres

hAdapter

Contexte matériel à préemption et à marquer comme suspendu. Ce type de demande de préemption n’a pas de période de grâce et est censé être respecté par le GPU dès que possible.

pSuspendContext

Pointeur vers une structure de DXGKARG_SUSPENDCONTEXT qui contient une valeur par contexte qui augmente de façon monotone et qui sera signalée par l’interruption suspendue du contexte GPU une fois la demande de préemption terminée. Tant que la clôture n’est pas signalée, le système d’exploitation ne peut pas supposer que le GPU est suspendu.

Valeur retournée

Retourne STATUS_SUCCESS si le contexte est déjà suspendu au moment de cet appel. Sinon, cette valeur est définie sur STATUS_PENDING et l’opération de suspension est terminée lorsque contextSuspendFence est signalé via une interruption.

Remarques

Inscrivez votre implémentation de cette fonction de rappel en définissant le membre approprié de DXGKARG_SUSPENDCONTEXT, puis en appelant DxgkddiSuspendContext.

Même si la préemption de tourniquet peut être lancée par le GPU, le système d’exploitation a toujours besoin d’un moyen de préempter le contexte pour d’autres raisons, par exemple s’il doit déplacer ses allocations ou effectuer une transition d’alimentation GPU.

La valeur de suspension de contexte est nécessaire pour gérer les cas où le système d’exploitation suspend un contexte, n’attend pas l’accusé de réception de suspension, reprend et suspend à nouveau un contexte. La valeur suspend permet au système d’exploitation de faire la distinction entre l’accusé de réception de suspension précédent et le dernier.

Une fois qu’un contexte est suspendu, il est supposé que toutes les références à celui-ci ont disparu du GPU, et le système d’exploitation est libre de détruire le contexte ou de déplacer sa mémoire. Contrairement à WDDM 2.3 ou version antérieure, aucune commande de commutateur de contexte NULL distincte (précédemment indiquée par l’indicateur ContextSwitch dans DdiSubmitCommandVirtual) n’est présente en mode de planification WDDM 2.4, car DdiSuspendContext est censé effectuer ce travail.

Configuration requise

Condition requise Valeur
En-tête d3dkmddi.h