WdfInterruptReportInactive 函式 (wdfinterrupt.h)
[僅適用於 KMDF]
WdfInterruptReportInactive 方法會通知系統中斷不再作用中,而且驅動程式不預期在相關聯的行上中斷要求。
語法
void WdfInterruptReportInactive(
[in] WDFINTERRUPT Interrupt
);
參數
[in] Interrupt
架構中斷物件的句柄。
傳回值
無
備註
只有實作功能狀態電源管理的驅動程式會呼叫 WdfInterruptReportInactive。
當驅動程式呼叫 WdfInterruptReportInactive 時,電源管理架構 (PoFx) 接著可以執行相關的電源管理工作。
一般而言,當 State 大於零 (時,驅動程式會從其 ComponentIdleConditionCallback 例程呼叫 WdfInterruptReportInactive,或從 ComponentIdleStateCallback 呼叫 WdfInterruptReportInactive,指出低電源 Fx 狀態) 。
如果您的驅動程式在早於 Windows 8 的作業系統上呼叫此方法,架構的驗證程式會回報錯誤。
範例
下列範例示範驅動程式如何從 KMDF 驅動程式的 ComponentIdleStateCallback 例程呼叫 WdfInterruptReportInactive。 驅動程式會呼叫 WdfDeviceWdmAssignPowerFrameworkSettings 來註冊單一元件。
VOID
MyComponentIdleStateCallback(
_In_ PVOID Context,
_In_ ULONG Component,
_In_ ULONG State
)
{
PFDO_DEVICE_DATA deviceData;
PFDO_INTERRUPT_CONTEXT interruptContext;
deviceData = FdoGetData((WDFDEVICE)Context);
interruptContext = InterruptGetData(deviceData->Interrupt);
switch (State) {
case 0:
…
break;
//
// PoFx may make us go to any of the F-states directly, hence we execute
// F0Exit code for all of the Fx states. Note that transition to any Fx
// state happens from F0 (and not another Fx state).
//
default:
//
// Disable interrupt generation at hardware if needed.
//
WdfInterruptAcquireLock(deviceData->Interrupt);
DisableInterruptInHardware();
WdfInterruptReleaseLock(deviceData->Interrupt);
//
// Report that interrupt is now inactive.
//
WdfInterruptReportInactive(deviceData->Interrupt);
interruptContext->ReportedInactive = TRUE;
break;
…
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 |
目標平台 | Universal |
最低 KMDF 版本 | 1.11 |
標頭 | wdfinterrupt.h (包含 Wdf.h) |
程式庫 | Wdf01000.sys (請參閱 Framework Library Versioning.) |
IRQL | <=DISPATCH_LEVEL |
DDI 合規性規則 | DriverCreate (kmdf) |