DPC

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 6. marts 2016; checks kræver 11 redigeringer .

DPC ( eng.  Deferred procedure call  -delayed procedure call ) - en specifik mekanisme til at kalde procedurer i Windows-arkitekturen .

Essensen af ​​DPC

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 [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.

DPC-styring

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.

Noter

  1. I multiprocessorsystemer har hver processor sin egen ventende opkaldskø. Så hvert afventende opkald er knyttet til en bestemt processor.

Se også

Litteratur