Compartir a través de


Introducción a los DPC

Cualquier controlador que tenga un ISR normalmente también tiene al menos una rutina DpcForIsr o CustomDpc para completar el procesamiento de operaciones de E/S controladas por interrupciones. Una rutina típica de DpcForIsr o CustomDpc del controlador de nivel inferior hace lo siguiente:

  • Finaliza el control de una operación de E/S que el ISR inició el procesamiento.

  • Quita la cola del siguiente IRP para que el controlador pueda empezar a procesarlo.

  • Completa el IRP actual, si es posible.

A veces no se puede completar el IRP actual porque se requieren varias transferencias de datos o se detectó un error recuperable. En estos casos, la rutina DpcForIsr o CustomDpc normalmente vuelve a programar el dispositivo para otra transferencia o un reintento de la última operación.

Se llama a una rutina DpcForIsr o CustomDpc en un contexto DPC arbitrario en IRQL DISPATCH_LEVEL. La ejecución en DISPATCH_LEVEL restringe el conjunto de rutinas de soporte técnico a las que puede llamar una rutina DpcForIsr o CustomDpc . Consulte Administración de prioridades de hardware para obtener más información.

Los objetos DPC y los DPC también se pueden usar con temporizadores. Para obtener más información, vea Objetos de temporizador y DPC.