EVT_WDF_INTERRUPT_DISABLE Rückruffunktion (wdfinterrupt.h)
[Gilt für KMDF und UMDF]
Die EvtInterruptDisable-Ereignisrückruffunktion eines Treibers deaktiviert einen angegebenen Hardwareunterbrechung.
Syntax
EVT_WDF_INTERRUPT_DISABLE EvtWdfInterruptDisable;
NTSTATUS EvtWdfInterruptDisable(
[in] WDFINTERRUPT Interrupt,
[in] WDFDEVICE AssociatedDevice
)
{...}
Parameter
[in] Interrupt
Ein Handle für ein Framework-Interruptobjekt.
[in] AssociatedDevice
Ein Handle für das Framework-Geräteobjekt, das der Treiber an WdfInterruptCreate übergeben hat.
Rückgabewert
Die EvtInterruptDisable-Rückruffunktion muss STATUS_SUCCESS oder einen anderen status Wert zurückgeben, für den NT_SUCCESS(status) gleich TRUE ist, wenn keine Fehler auftreten. Andernfalls muss diese Funktion einen status Wert zurückgeben, für den NT_SUCCESS(status) gleich FALSE ist.
Hinweise
Um eine EvtInterruptDisable-Rückruffunktion zu registrieren, muss ihr Treiber die Adresse der Rückruffunktion in einer WDF_INTERRUPT_CONFIG-Struktur platzieren, bevor WdfInterruptCreate aufgerufen wird.
Das Framework ruft die EvtInterruptDisable-Rückruffunktion des Treibers jedes Mal auf, wenn das Gerät seinen Arbeitszustand (D0) verlässt. Darüber hinaus kann ein Treiber dazu führen, dass das Framework die EvtInterruptDisable-Rückruffunktion aufruft , indem WdfInterruptDisable aufgerufen wird. Beachten Sie, dass die meisten frameworkbasierten Treiber WdfInterruptDisable nicht aufrufen sollten, da das Framework die EvtInterruptDisable-Rückruffunktion des Treibers jedes Mal aufruft, wenn das Gerät seinen Arbeitszustand (D0) verlässt.
Vor dem Aufrufen der Rückruffunktion EvtInterruptDisable hebt das Framework die IRQL des Prozessors auf den DIRQL des Geräts 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 die Behandlung von Interrupts auf passiver Ebene bereitstellen. Wenn der Treiber die Behandlung von Interrupts auf passiver Ebene angefordert hat, ruft das Framework vor dem Aufruf der EvtInterruptDisable-Funktion bei IRQL = PASSIVE_LEVEL die Interruptsperre auf passiver Ebene ab, die der Treiber in der WDF_INTERRUPT_CONFIG-Struktur des Interruptobjekts konfiguriert hat.
Vor dem Aufrufen der EvtInterruptDisable-Rückruffunktion ruft das Framework die Ereignisrückruffunktion EvtDeviceD0ExitPreInterruptsDisabled des Treibers unter IRQL = PASSIVE_LEVEL auf.
Weitere Informationen zur Behandlung von Interrupts in frameworkbasierten Treibern finden Sie unter Behandeln von Hardwareunterbrechungen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfinterrupt.h (einschließen von Wdf.h) |
IRQL | (Siehe Abschnitt Hinweise.) |