EVT_WDF_INTERRUPT_ENABLE Rückruffunktion (wdfinterrupt.h)
[Gilt für KMDF und UMDF]
Die EvtInterruptEnable-Ereignisrückruffunktion eines Treibers aktiviert einen angegebenen Hardwareunterbrechung.
Syntax
EVT_WDF_INTERRUPT_ENABLE EvtWdfInterruptEnable;
NTSTATUS EvtWdfInterruptEnable(
[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 EvtInterruptEnable-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 EvtInterruptEnable-Rückruffunktion zu registrieren, muss Der Treiber die Adresse der Rückruffunktion in einer WDF_INTERRUPT_CONFIG-Struktur platzieren, bevor WdfInterruptCreate aufgerufen wird.
Das Framework ruft die EvtInterruptEnable-Rückruffunktion des Treibers 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 WdfInterruptEnable aufgerufen wird. Beachten Sie, dass die meisten frameworkbasierten Treiber WdfInterruptEnable nicht aufrufen sollten, da das Framework die EvtInterruptEnable-Rückruffunktion des Treibers jedes Mal aufruft, wenn das Gerät in den Betriebszustand (D0) wechselt.
Vor dem Aufrufen der EvtInterruptEnable-Rückruffunktion 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 EvtInterruptEnable-Funktion bei IRQL = PASSIVE_LEVEL die Interruptsperre auf passiver Ebene ab, die der Treiber in der WDF_INTERRUPT_CONFIG-Struktur des Interruptobjekts konfiguriert hat.
Nachdem die Rückruffunktion EvtInterruptEnable zurückgegeben wurde, ruft das Framework die Ereignisrückruffunktion EvtDeviceD0EntryPostInterruptsEnabled des Treibers unter IRQL = PASSIVE_LEVEL auf.
Sie dürfen nicht davon ausgehen, dass ein Gerät bei jedem Aufruf der EvtInterruptEnable-Rückruffunktion Ihres Treibers die gleichen Interruptressourcen verwendet. Manchmal verteilt der PnP-Manager Systemressourcen neu und weist Ihrem Gerät möglicherweise neue Interruptressourcen zu. Der Treiber kann WdfInterruptGetInfo aufrufen, um die Interruptressourcen eines Geräts zu bestimmen.
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.) |