[適用於 KMDF 和 UMDF]
WdfInterruptSynchronize 方法會在裝置的 DIRQL 上執行指定的回呼函式,同時保留中斷物件的微調鎖定。
對於被動層級中斷對象,這個方法會在被動層級執行指定的回呼函式,同時保留中斷物件的被動層級中斷鎖定。
語法
BOOLEAN WdfInterruptSynchronize(
[in] WDFINTERRUPT Interrupt,
[in] PFN_WDF_INTERRUPT_SYNCHRONIZE Callback,
[in] WDFCONTEXT Context
);
參數
[in] Interrupt
架構中斷物件的句柄。
[in] Callback
EvtInterruptSynchronize 回呼函式的指標。
[in] Context
架構傳遞至 EvtInterruptSynchronize 回呼函式之驅動程式提供資訊的不具型別指標。
返回值
WdfInterruptSynchronize 會傳回 EvtInterruptSynchronize 回呼函式傳回的布爾值。
如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。
備註
如果您想要讓驅動程式執行必須執行的程式代碼,而不需先佔,且設備中斷服務已有效停用,您應該將該程式代碼放在 EvtInterruptSynchronize 回呼函式中。 若要排程回呼函式的執行,您的驅動程式必須呼叫 WdfInterruptSynchronize。
WdfInterruptSynchronize 方法會在 EvtInterruptSynchronize 回呼函式完成執行之後傳回。
您的驅動程式可以呼叫 WdfInterruptAcquireLock 和 WdfInterruptReleaseLock,而不是呼叫 WdfInterruptSynchronize。
如需 WdfInterruptSynchronize 方法的詳細資訊,請參閱 同步處理中斷程式代碼。
如需在架構型驅動程式中處理中斷的詳細資訊,請參閱 處理硬體中斷。
針對被動層級中斷,驅動程式必須在 IRQL = PASSIVE_LEVEL呼叫 WdfInterruptSynchronize。
請勿從任意線程內容呼叫 WdfInterruptSynchronize,例如 要求處理程式。
範例
下列程式代碼範例示範如何呼叫 WdfInterruptSynchronize,以排程執行 EvtInterruptSynchronize 回呼函式。
BOOLEAN synchronizeReturnValue;
synchronizeReturnValue = WdfInterruptSynchronize(
WdfInterrupt,
MyEvtInterruptSynchronize,
CallbackContext
);
需求
| 要求 | 價值 |
|---|---|
| 目標平臺 | 普遍 |
| 最低 KMDF 版本 | 1.0 |
| 最低 UMDF 版本 | 2.0 |
| 標題 | wdfinterrupt.h (包括 Wdf.h) |
| 程式庫 | Wdf01000.sys (KMDF):WUDFx02000.dll (UMDF) |
| IRQL | <=DISPATCH_LEVEL |
| DDI 合規性規則 | DriverCreate(kmdf),KmdfIrql(kmdf),KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf) |