DPC ( eng. Deferred procedure call -delayed procedure call ) - en specifik mekanisme til at kalde procedurer i Windows-arkitekturen .
Når der opstår en afbrydelse, overføres kontrollen til afbrydelsesbehandleren . Der er en række faktorer, der begrænser mulighederne for afbrydelseshåndteringskoden:
Løsningen på dette problem er en tilgang, hvor kun de mest kritiske operationer udføres direkte i handleren, og andre handlinger udskydes, indtil der vises relativt ledig processortid, og IRQL falder til en gyldig værdi ( DISPATCH_LEVEL). Derefter vil disse handlinger blive udført som en del af opkaldet til den udskudte (dets udførelse blev udskudt indtil dette øjeblik) procedure.
I modsætning til et normalt procedurekald, hvor kontrollen faktisk umiddelbart overføres til koden for den kaldte procedure, overføres kontrollen med et DPC-kald ikke til den kaldte procedure - i stedet placeres adressen på den kaldte procedure og parametre i en speciel kø [1] kaldet DPC Queue . Når det "opportune" tidspunkt kommer, kaldes den udskudte procedure for alvor.
Afbrydelseshandleren udfører således kun de mest nødvendige handlinger og foretager et forsinket procedurekald, der vil udføre alle andre handlinger, der er nødvendige som en del af afbrydelseshåndteringen, men som ikke kræver øget haste.
Da DPC-mekanismen primært bruges inden for rammerne af behandling af I/O-anmodninger, er der specielle præfiksede indpakningsfunktioner Iotil håndtering af udskudte opkald. Især afbrydelsesbehandlere bør ifølge dokumentationen bruge disse funktioner.