WdfSpinLockCreate 函式 (wdfsync.h)
[適用於 KMDF 和 UMDF]
WdfSpinLockCreate 方法會建立架構 Spin-lock 物件。
語法
NTSTATUS WdfSpinLockCreate(
[in, optional] PWDF_OBJECT_ATTRIBUTES SpinLockAttributes,
[out] WDFSPINLOCK *SpinLock
);
參數
[in, optional] SpinLockAttributes
呼叫端配置的 WDF_OBJECT_ATTRIBUTES 結構的指標,指定微調鎖定對象的屬性。 這個參數是選擇性的,而且可以WDF_NO_OBJECT_ATTRIBUTES。
[out] SpinLock
接收新架構微調鎖定物件句柄的位置指標。
傳回值
如果作業成功,WdfSpinLockCreate 會傳回STATUS_SUCCESS。
如需 WdfSpinLockCreate 方法可能會傳回的其他傳回值清單,請參閱 Framework 物件建立錯誤。
這個方法也可能傳回其他 NTSTATUS值。
備註
WdfSpinLockCreate 方法會建立架構 Spin-lock 物件。 建立微調鎖定對象之後,驅動程式可以呼叫 WdfSpinLockAcquire 來取得鎖定和 WdfSpinLockRelease 以釋放鎖定。
根據預設,新的微調鎖定物件的父系是 WdfDriverCreate 方法建立的架構驅動程序物件。 您可以使用 WDF_OBJECT_ATTRIBUTES 結構的 ParentObject 成員來指定不同的父代。 架構會在刪除父物件時刪除微調鎖定物件。 如果您的驅動程式未變更預設父代,則驅動程式應該在使用 物件完成時刪除微調鎖定物件;否則,對象會維持不變,直到 I/O 管理員卸除您的驅動程序為止。
如需微調鎖定的詳細資訊,請參閱 Framework-Based 驅動程式的同步處理技術。
範例
下列程式代碼範例會初始化 WDF_OBJECT_ATTRIBUTES,指定微調鎖定的父物件會是裝置物件,並呼叫 WdfSpinLockCreate。
WDF_OBJECT_ATTRIBUTES attributes;
WDFSPINLOCK lockHandle;
WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = Device;
status = WdfSpinLockCreate(
&attributes,
&lockHandle
);
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最低 KMDF 版本 | 1.0 |
最低UMDF版本 | 2.0 |
標頭 | wdfsync.h (包含 Wdf.h) |
程式庫 | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI 合規性規則 | DriverCreate (kmdf) 、 KmdfIrql (kmdf) 、 KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf) 、 ParentObjectCheckLock (kmdf) 、 WdfSpinlock (kmdf) |