Freigeben über


EVT_WDF_INTERRUPT_ENABLE Rückruffunktion (wdfinterrupt.h)

[Gilt für KMDF und UMDF]

Die EvtInterruptEnable Ereignisrückruffunktion eines Treibers ermöglicht einen angegebenen Hardwareunterbruch.

Syntax

EVT_WDF_INTERRUPT_ENABLE EvtWdfInterruptEnable;

NTSTATUS EvtWdfInterruptEnable(
  [in] WDFINTERRUPT Interrupt,
  [in] WDFDEVICE AssociatedDevice
)
{...}

Die Parameter

[in] Interrupt

Ein Handle zu einem Framework-Interruptobjekt.

[in] AssociatedDevice

Ein Handle für das Framework-Geräteobjekt, das der Treiber an WdfInterruptCreateübergeben hat.

Rückgabewert

Die EvtInterruptEnable- Rückruffunktion muss STATUS_SUCCESS oder einen anderen Statuswert zurückgeben, für den NT_SUCCESS(Status) TRUE- ist, wenn die Funktion keine Fehler aufweist. Andernfalls muss diese Funktion einen Statuswert zurückgeben, für den NT_SUCCESS(Status) FALSE-entspricht.

Bemerkungen

Um eine EvtInterruptEnable Rückruffunktion zu registrieren, muss Ihr Treiber die Adresse der Rückruffunktion in einer WDF_INTERRUPT_CONFIG-Struktur platzieren, bevor sie WdfInterruptCreateaufruft.

Das Framework ruft die EvtInterruptEnable Rückruffunktion des Treibers jedes Mal auf, wenn das Gerät in den Arbeitszustand (D0) wechselt. Darüber hinaus kann ein Treiber dazu führen, dass das Framework die EvtInterruptEnable Rückruffunktion aufruft, indem WdfInterruptEnableaufgerufen wird. Beachten Sie, dass die meisten frameworkbasierten Treiber nicht WdfInterruptEnableaufrufen sollten, da das Framework die EvtInterruptEnable Rückruffunktion des Treibers bei jedem Wechsel des Arbeitszustands (D0) aufruft.

Vor dem Aufrufen der EvtInterruptEnable Rückruffunktion löst das Framework die IRQL des Prozessors in die DIRQL des Geräts aus und ruft die Drehsperre ab, die der Treiber in der WDF_INTERRUPT_CONFIG Struktur des Interruptobjekts angegeben hat.

Ab Version 1.11 von KMDF kann Ihr Treiber passive Unterbrechungsbehandlungbereitstellen. Wenn der Treiber die Behandlung auf passiver Ebene angefordert hat, ruft das Framework die EvtInterruptEnable-Funktion bei IRQL = PASSIVE_LEVEL auf, ruft das Framework die Passive-Level-Interrupt-Sperre ab, die der Treiber in der WDF_INTERRUPT_CONFIG Struktur des Interruptobjekts konfiguriert hat.

Nachdem die EvtInterruptEnable Rückruffunktion zurückgegeben wurde, ruft das Framework die EvtDeviceD0EntryPostInterruptsEnabled Ereignisrückruffunktion bei IRQL = PASSIVE_LEVEL auf.

Sie dürfen nicht davon ausgehen, dass ein Gerät bei jedem Aufruf des Treibers EvtInterruptEnable Rückruffunktion die gleichen Unterbrechungsressourcen verwendet. Manchmal der PnP-Manager Systemressourcenweiterverteilt, und es kann dem Gerät neue Interruptressourcen zuweisen. Der Treiber kann WdfInterruptGetInfo- aufrufen, um die Unterbrechungsressourcen eines Geräts zu ermitteln.

Weitere Informationen zum Behandeln von Unterbrechungen in frameworkbasierten Treibern finden Sie unter Behandeln von Hardware-Interrupts.

Anforderungen

Anforderung Wert
Zielplattform universell
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Kopfzeile wdfinterrupt.h (einschließen Wdf.h)
IRQL (Siehe Abschnitt "Hinweise".)

Siehe auch

EvtDeviceD0EntryPostInterruptsEnabled

EvtInterruptDisable

WDF_INTERRUPT_CONFIG

WdfInterruptCreate

WdfInterruptEnable-

WdfInterruptGetInfo-