Porteringsavbrott

Koden för att stödja och underhålla avbrott är liknande i WDF- och WDM-drivrutiner. Det finns en primär skillnad:

  • En WDF-drivrutin skapar WDFINTERRUPT-objektet och registrerar sitt ISR-återanrop (Interrupt Service Routine) genom att anropa WdfInterruptCreate från dess EvtDriverDeviceAdd återanrop.
  • En WDM-drivrutin skapar en KINTERRUPT-struktur och ansluter den under IRP_MN_START_DEVICE processen.

EvtInterruptIsr callback-funktion i en WDF-drivrutin utför samma uppgifter som WDM-drivrutinens InterruptService rutin. EvtInterruptIsr anropar WdfInterruptQueueDpcForIsr för att lägga EvtInterruptDpc i kö för senare bearbetning på DISPATCH_LEVEL. Som ett svar lägger ramverket till ett DPC-objekt i systemkön som kör denna callback-funktion.

Mer information om ramverksavbrottsobjekt finns i Hantering av maskinvaruavbrott.