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
                                         );

規格需求

需求
目標平台 Universal
最低 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