DXGKDDI_SUSPENDCONTEXT función de devolución de llamada (d3dkmddi.h)
DxgkddiSuspendContext indica a la GPU que suspenda un contexto. Si la GPU no reconoce la finalización de suspensión dentro del tiempo de espera de TDR (detección de tiempo de espera y recuperación), el sistema operativo detectará el tiempo de espera del motor y realizará un restablecimiento del motor.
Sintaxis
DXGKDDI_SUSPENDCONTEXT DxgkddiSuspendcontext;
NTSTATUS DxgkddiSuspendcontext(
IN_CONST_HANDLE hAdapter,
IN_CONST_PDXGKARG_SUSPENDCONTEXT pSuspendContext
)
{...}
Parámetros
hAdapter
[in] Contexto de hardware que se va a adelantar y marcar como suspendido. Este tipo de solicitud de adelantamiento no tiene un período de gracia y se espera que la GPU lo respete lo antes posible.
pSuspendContext
[in] Puntero a una estructura de DXGKARG_SUSPENDCONTEXT que contiene argumentos adicionales para esta función.
Valor devuelto
DxgkddiSuspendContext devuelve STATUS_SUCCESS si el contexto ya está suspendido en el momento de esta llamada. De lo contrario, este valor se establece en STATUS_PENDING y la operación de suspensión se finalizará cuando contextSuspendFence se indique a través de una interrupción.
Comentarios
Registre la implementación de esta función de devolución de llamada estableciendola en DRIVER_INITIALIZATION_DATA.
Aunque la GPU puede iniciar el adelantamiento round robin, el sistema operativo todavía necesita una manera de adelantar el contexto por otros motivos; por ejemplo, si necesita mover sus asignaciones o realizar una transición de energía de GPU.
El valor de suspensión de contexto es necesario para controlar los casos en los que el sistema operativo suspende un contexto, no espera la confirmación de suspensión, se reanuda y suspende de nuevo un contexto. El valor de suspensión permitirá que el sistema operativo distinga entre la confirmación de suspensión anterior y la más reciente.
Una vez suspendido un contexto, se supone que todas las referencias a ella han desaparecido de la GPU y el sistema operativo es libre de destruir el contexto o mover su memoria. A diferencia de WDDM 2.3 o anterior, ningún comando de modificador de contexto NULL independiente (indicado anteriormente por la marca ContextSwitch en DxgkDdiSubmitCommandVirtual) está presente en el modo de programación WDDM 2.4, porque DxgkddiSuspendContext se supone que hace este trabajo.
Requisitos
Requisito | Valor |
---|---|
Header | d3dkmddi.h |