共用方式為


指定回呼同步處理模式

警告

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) 不是佇列回呼函式。 因此,它們不會同步處理。