DPC ( eng. Deferred procedúra kutsu - viivästetty prosessikutsu ) - erityinen mekanismi proseduurien kutsumiseksi Windows - arkkitehtuurissa .
Kun keskeytys tapahtuu, ohjaus siirtyy keskeytyskäsittelijälle . On olemassa useita tekijöitä, jotka rajoittavat keskeytyskäsittelijän koodin ominaisuuksia:
Ratkaisu tähän ongelmaan on lähestymistapa, jossa vain kriittisimmät toiminnot suoritetaan suoraan käsittelijässä ja muita toimintoja lykätään, kunnes suhteellisen vapaata prosessoriaikaa ilmaantuu ja IRQL laskee kelvolliseen arvoon ( DISPATCH_LEVEL). Sitten nämä toimet suoritetaan osana kutsua lykättyyn (sen suoritusta lykättiin tähän hetkeen asti) -menettelyä.
Toisin kuin normaalissa proseduurikutsussa, jossa itse asiassa ohjaus siirtyy välittömästi kutsutun proseduurin koodiin, DPC-kutsulla ohjausta ei siirretä kutsutulle proseduurille - sen sijaan sijoitetaan kutsutun proseduurin osoite ja parametrit. erityisessä jonossa [1] nimeltä DPC Queue . Kun "sopiva" aika koittaa, lykättyä menettelyä kutsutaan todelliseksi.
Siten keskeytyskäsittelijä suorittaa vain tarpeellisimmat toiminnot ja tekee viivästetyn proseduurikutsun, joka suorittaa kaikki muut toiminnot, joita tarvitaan osana keskeytyksen käsittelyä, mutta jotka eivät vaadi lisättyä kiireellisyyttä.
Koska DPC-mekanismia käytetään ensisijaisesti I/O-pyyntöjen käsittelyn puitteissa, on olemassa erityisiä prefiksoituja kääretoimintoja Iolykättyjen puhelujen hallintaan. Erityisesti keskeytyskäsittelijöiden tulee dokumentaation mukaan käyttää näitä toimintoja.