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 nur für KMDF]
Die WdfInterruptReportActive informiert das System darüber, dass der Interrupt aktiv ist und der Treiber bereit ist, Unterbrechungsanforderungen für die zugehörigen Zeilen zu verarbeiten.
Syntax
VOID WdfInterruptReportActive(
[in] WDFINTERRUPT Interrupt
);
Die Parameter
[in] Interrupt
Ein Handle zu einem Framework-Interruptobjekt.
Rückgabewert
Nichts
Bemerkungen
Nur Treiber, die funktionsbezogene Energieverwaltungsaufrufe WdfInterruptReportActiveimplementieren.
Ein Treiber muss nicht WdfInterruptReportActive- unmittelbar nach dem Erstellen eines Interrupts aufrufen. Der Treiber sollte nur WdfInterruptReportActive- aufrufen, nachdem er zuvor WdfInterruptReportInactive-aufgerufen hat.
In der Regel ruft ein Treiber WdfInterruptReportActive- entweder aus der ComponentActiveConditionCallback- Routine oder von ComponentIdleStateCallback auf, wenn State 0 ist (der vollständig im F0-Zustand angegeben ist).
Wenn Ihr Treiber diese Methode auf einem Früheren Betriebssystem als Windows 8 aufruft, meldet der Überprüfung des Frameworks einen Fehler.
Weitere Informationen finden Sie unter Unterstützen von Funktionskraftzuständen.
Beispiele
Das folgende Beispiel zeigt, wie ein Treiber WdfInterruptReportActive- aus der ComponentIdleStateCallback-Routine eines KMDF-Treibers aufrufen kann. Der Treiber registriert eine einzelne Komponente, indem WdfDeviceWdmAssignPowerFrameworkSettingsaufgerufen wird.
VOID
MyComponentIdleStateCallback(
_In_ PVOID Context,
_In_ ULONG Component,
_In_ ULONG State
)
{
PFDO_DEVICE_DATA deviceData;
PINTERRUPT_CONTEXT interruptContext;
deviceData = FdoGetData((WDFDEVICE)Context);
interruptContext = InterruptGetData(deviceData->Interrupt);
switch (State) {
case 0:
if (interruptContext->ReportedInactive) {
//
// the interrupt was reported inactive earlier. We need to report active now.
//
WdfInterruptReportActive(deviceData->Interrupt);
interruptContext->ReportedInactive = FALSE;
//
// Enable interrupt generation at hardware.
//
WdfInterruptAcquireLock(deviceData->Interrupt);
EnableInterruptInHardware();
WdfInterruptReleaseLock(deviceData->Interrupt);
}
break;
…
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützter Client (Mindestversion) | Windows 8 |
| Zielplattform | universell |
| Minimale KMDF-Version | 1.11 |
| Kopfzeile | wdfinterrupt.h (einschließen Wdf.h) |
| Bibliothek | Wdf01000.sys (siehe Framework-Bibliotheksversionsverwaltung.) |
| IRQL | <=DISPATCH_LEVEL |
| DDI-Complianceregeln | DriverCreate(kmdf) |