DPC

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 6 de marzo de 2016; las comprobaciones requieren 11 ediciones .

DPC ( ing.  Llamada a procedimiento diferido-llamada a procedimiento  retrasado ): un mecanismo específico para llamar a procedimientos en la arquitectura de Windows .

La esencia de DPC

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.

Gestión de DPC

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.

Notas

  1. En los sistemas multiprocesador, cada procesador tiene su propia cola de llamadas pendientes. Por lo que cada llamada pendiente está asociada a un procesador específico.

Véase también

Literatura