共用方式為


WdfInterruptSynchronize 函式 (wdfinterrupt.h)

[適用於 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 回呼函式完成執行之後傳回。

您的驅動程式可以呼叫 WdfInterruptAcquireLockWdfInterruptReleaseLock,而不是呼叫 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)

另請參閱

EvtInterruptSynchronize

WdfInterruptAcquireLock

WdfInterruptReleaseLock