DXGKDDI_INTERRUPT_ROUTINE función de devolución de llamada (dispmprt.h)

La función DxgkDdiInterruptRoutine controla las interrupciones generadas por un adaptador de pantalla.

Sintaxis

DXGKDDI_INTERRUPT_ROUTINE DxgkddiInterruptRoutine;

BOOLEAN DxgkddiInterruptRoutine(
  [in] IN_CONST_PVOID MiniportDeviceContext,
  [in] IN_ULONG MessageNumber
)
{...}

Parámetros

[in] MiniportDeviceContext

Identificador de un bloque de contexto asociado a un adaptador de pantalla. La función DxgkDdiAddDevice del controlador de miniporte de pantalla proporcionó anteriormente este identificador al subsistema del kernel de gráficos de DirectX.

[in] MessageNumber

Índice de base cero de la tabla de interrupción de señal de mensaje (MSI) si la interrupción está señalizada por el mensaje. En el caso de las interrupciones basadas en línea, este parámetro es cero.

Valor devuelto

Si DxgkDdiInterruptRoutine determina que el adaptador representado por MiniportDeviceContext no ha generar la interrupción, devuelve FALSE. De lo contrario, debe descartar la interrupción en el adaptador antes de que devuelva TRUE.

Comentarios

Si la interrupción está basada en líneas (MessageNumber = 0), DxgkDdiInterruptRoutine debe determinar si el adaptador representado por MiniportDeviceContext generó la interrupción y, si no es así, devuelve FALSE inmediatamente.

Si el adaptador representado por MiniportDeviceContext generaba la interrupción, DxgkDdiInterruptRoutine debe realizar los pasos siguientes:

  • Descarte la interrupción en el adaptador.
  • Complete la operación solicitada que provocó la interrupción o poner en cola un DPC que completará la operación más adelante.
  • Devuelve TRUE lo antes posible.

Cualquier otra función de controlador de miniporte para mostrar que comparte memoria (por ejemplo, alguna parte del estado representado por MiniportDeviceContext) con DxgkDdiInterruptRoutine debe llamar a DxgkCbSynchronizeExecution para sincronizar su acceso a la memoria compartida.

La función DxgkDdiInterruptRoutine puede llamar a DxgkCbQueueDpc y DxgkCbNotifyInterrupt , pero no debe llamar a ninguna otra función DxgkCbXxx . Para obtener más información sobre la secuencia adecuada de llamadas de función, consulte Envío de un búfer de comandos.

DxgkDdiInterruptRoutine se ejecuta en un IRQL con privilegios elevados, por lo que (y todas las funciones a las que llama) deben ser no paginables. Además, DxgkDdiInterruptRoutine (y todas las funciones que llama) no deben intentar acceder a la memoria paginable.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Plataforma de destino Escritorio
Encabezado dispmprt.h
IRQL vea la sección Comentarios.

Consulte también

DxgkCbNotifyInterrupt

DxgkCbQueueDpc

DxgkCbSynchronizeExecution