指定回呼同步處理模式

警告

UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的 UMDF 驅動程式都應該使用 UMDF 2 撰寫。 未將新功能新增至 UMDF 1,且較新版本的WINDOWS 10上,UMDF 1 的支援有限。 通用 Windows 驅動程式必須使用 UMDF 2。

封存的 UMDF 1 範例可在Windows 11 22H2 - 2022 年 5 月驅動程式範例更新中找到。

如需詳細資訊,請參閱使用 UMDF 消費者入門

驅動程式可以指定架構如何呼叫其回呼函式。 驅動程式會先指定裝置的同步處理 (或鎖定) 模式,再呼叫 IWDFDriver::CreateDevice 方法來建立 裝置的裝置物件 。 若要指定同步處理模式,驅動程式應該呼叫 IWDFDeviceInitialize::SetLockingConstraint 方法。 驅動程式會在呼叫IDriverEntry::OnDeviceAdd方法以將裝置新增至系統時,接收IWDFDeviceInitialize介面的指標。

驅動程式可以在IWDFDeviceInitialize::SetLockingConstraintLockType參數中,從 WDF_CALLBACK_CONSTRAINT 列舉類型指定下列其中一個值,以識別鎖定模式。 指定的條件約束 (或鎖定) 類型取決於硬體裝置可惡意探索的平行處理原則,以及驅動程式可以處理多少。

意義

(0)

表示驅動程式中沒有任何回呼函式已同步處理。

WdfDeviceLevel (1)

指出驅動程式中的所有佇列回呼函式都會同步處理。

注意 如果驅動程式未呼叫 IWDFDeviceInitialize::SetLockingConstraint 來指定值,架構會將此屬性的預設值設定為 WdfDeviceLevel

條件約束僅適用于佇列回呼函式,不適用於 隨插即用 (PnP) 和電源管理回呼函式。 佇列回呼函式包含下列各項:

要求完成回呼函式 (IRequestCallbackRequestCompletion::OnCompletion) 不是佇列回呼函式。 因此,它們不會同步處理。