DPC ( ing. Llamada a procedimiento diferido-llamada a procedimiento retrasado ): un mecanismo específico para llamar a procedimientos en la arquitectura de Windows .
Cuando ocurre una interrupción, el control se transfiere al manejador de interrupciones . Hay una serie de factores que limitan las capacidades del código del controlador de interrupciones:
La solución a este problema es un enfoque en el que solo las operaciones más críticas se realizan directamente en el controlador y otras acciones se posponen hasta que aparece un tiempo de procesador relativamente libre y IRQL cae a un valor válido ( DISPATCH_LEVEL). Entonces estas acciones se realizarán como parte de la llamada al procedimiento diferido (su ejecución fue diferida hasta este momento).
A diferencia de una llamada de procedimiento normal, en la que, de hecho, el control se transfiere inmediatamente al código del procedimiento llamado, con una llamada DPC, el control no se transfiere al procedimiento llamado; en su lugar, se colocan la dirección del procedimiento llamado y los parámetros. en una cola especial [1] llamada DPC Queue . Cuando llega el momento "oportuno", se llama de verdad al procedimiento diferido.
Por lo tanto, el controlador de interrupciones realiza solo las acciones más necesarias y realiza una llamada a un procedimiento retrasado que realizará todas las demás acciones que se necesitan como parte del manejo de interrupciones, pero que no requieren una mayor urgencia.
Dado que el mecanismo de DPC se utiliza principalmente en el marco del procesamiento de solicitudes de E/S, existen funciones especiales de envoltorio con prefijo Iopara administrar las llamadas diferidas. En particular, los controladores de interrupciones, de acuerdo con la documentación, deberían usar estas funciones.