Deferred procedure call
# Deferred procedure call

Un appel de procédure différée (ou deferred procedure call, abrégé DPC) est un mécanisme utilisé sous les systèmes d'exploitation Microsoft Windows, permettant aux tâches prioritaires de reporter l'exécution de tâches ayant un niveau de priorité inférieur. Cela permet aux pilotes de matériel ainsi qu'aux autres procédures de bas niveau d'obtenir rapidement la priorité pour leurs propres tâches, et ce tout en attribuant un niveau de priorité d’exécution moins élevé aux processus additionnels.

Les DPC sont implémentés sous forme d'objets DPC créés et initialisés par le noyau du système d'exploitation lorsqu'un pilote ou un autre programme s'exécutant dans l'espace noyau en fait la demande. La requête DPC est donc placée en fin de la file d'attente des demandes d'appels de procédures différées. Chaque processeur dispose de sa propre file d'attente pour les requêtes DPC. Les appels de procédures différées ont trois niveaux de priorités : basse, moyenne, et élevée. Par défaut, toutes les DPC ont une priorité moyenne. Lorsque le processeur rencontre une interruption (IRQL : Interrupt Request Level) correspondant à l'ordonnancement des tâches/DPC, il consulte la file d'attente des procédures d'appels différées et les exécute progressivement jusqu'à épuisement de la file d'attente ou jusqu'à ce qu'une autre interruption de priorité plus élevée soit rencontrée.

