Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Gilt für KMDF und UMDF]
Die EvtInterruptWorkItem eines Treibers Ereignisrückruffunktion verarbeitet Informationen, die der Treiber EvtInterruptIsr Rückruffunktion gespeichert hat.
Syntax
EVT_WDF_INTERRUPT_WORKITEM EvtWdfInterruptWorkitem;
VOID EvtWdfInterruptWorkitem(
[in] WDFINTERRUPT Interrupt,
[in] WDFOBJECT AssociatedObject
)
{...}
Die Parameter
[in] Interrupt
Ein Handle zu einem Framework-Interruptobjekt.
[in] AssociatedObject
Ein Handle für das Framework-Geräteobjekt, das der Treiber an WdfInterruptCreateübergeben hat.
Rückgabewert
Nichts
Bemerkungen
Die EvtInterruptWorkItem Rückruffunktion wird bei IRQL = PASSIVE_LEVEL ausgeführt.
Um eine EvtInterruptWorkItem- Rückruffunktion zu registrieren, muss Der Treiber die Adresse der Rückruffunktion in einer WDF_INTERRUPT_CONFIG-Struktur platzieren, bevor WdfInterruptCreateaufgerufen wird.
Die meisten Treiber verwenden eine einzelne EvtInterruptWorkItem Rückruffunktion für jeden Interrupttyp.
Um die Ausführung eines EvtInterruptWorkItem- Rückruffunktion zu planen, muss der Treiber WdfInterruptQueueWorkItemForIsr innerhalb der EvtInterruptIsr Rückruffunktion aufrufen.
Wenn Ihr Treiber mehrere Framework-Interruptobjekte für jedes Gerät erstellt, sollten Sie für jeden Interrupt ein separates EvtInterruptWorkItem- Rückruf verwenden.
Treiber, die entweder die DIRQL-Interruptbehandlung oder die passive Unterbrechungsbehandlung implementieren, können ein EvtInterruptWorkItem- Rückruf in die Warteschlange stellen.
Ein Treiber kann nicht sowohl ein EvtInterruptDpc- als auch ein EvtInterruptWorkItem- Rückruf in die Warteschlange stellen.
Wenn der Treiber die AutomaticSerialization Member in der WDF_INTERRUPT_CONFIG Struktur des Interrupts auf TRUE festgelegt hat, synchronisiert das Framework die Ausführung des EvtInterruptWorkItem Rückruffunktion mit Rückruffunktionen aus anderen Objekten, die sich unter dem übergeordneten Objekt des Interrupts befinden. Informationen zu Rückrufsynchronisierungssperren finden Sie unter Using Framework Locks.
Wenn der Treiber die passive Sperre des Interruptobjekts aus EvtInterruptWorkItem-abrufen muss, sollte der Treiber die AutomaticSerialization Member der WDF_INTERRUPT_CONFIG auf FALSE festlegen und dann WdfInterruptAcquireLock aus EvtInterruptWorkItemaufrufen.
Wenn AutomaticSerialization- auf TRUE festgelegt ist, sollte die EvtInterruptWorkItem- Rückruffunktion eines Treibers keine der folgenden Methoden aufrufen:
WdfInterruptAcquireLockWdfInterruptSynchronizeWdfInterruptDisableWdfInterruptEnable Weitere Informationen zum Behandeln von Unterbrechungen in frameworkbasierten Treibern finden Sie unter Handling Hardware Interrupts.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform | universell |
| Minimale KMDF-Version | 1.11 |
| Mindest-UMDF-Version | 2.0 |
| Kopfzeile | wdfinterrupt.h (einschließen Wdf.h) |
| IRQL | PASSIVE_LEVEL |