共用方式為


KeInitializeSpinLock 函式 (wdm.h)

KeInitializeSpinLock 例程會初始化類型為 KSPIN_LOCK的變數。

語法

void KeInitializeSpinLock(
  [out] PKSPIN_LOCK SpinLock
);

參數

[out] SpinLock

呼叫端必須提供記憶體的微調鎖定指標。

傳回值

備註

必須先呼叫此例程,再呼叫 KeAcquireSpinLock對 KeAcquireInStackQueuedSpinLock 或任何其他需要微調鎖定作為自變數的支援例程。

微調鎖定物件的記憶體必須駐留:在驅動程式建立裝置物件的裝置延伸模組、驅動程式建立控制器物件的控制器延伸模組,或呼叫端所配置的非分頁集區中。

從 Windows XP 到 Windows 7 的 x64 系統會內嵌此函式。 從 Windows 8 開始,此函式會從 ntoskrnl.lib匯出。 因此,如果您使用 Windows 10 WDK 來建置在 Windows 7 (上執行的二進位檔,因此您需要 NX 集區使用量來傳遞 Windows 10 HLK 測試) ,您必須定義 WIN9X_COMPAT_SPINLOCK。 否則,您可能會看到 Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39)

如需微調鎖定的詳細資訊,請參閱 微調鎖定

此例程的呼叫端可以在任何 IRQL 上執行。 通常呼叫端是在 IRQL = PASSIVE_LEVEL AddDevice 例程中執行。

規格需求

需求
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL 任何層級 (請參閱一節)
DDI 合規性規則 HwStorPortProhibitedDIS (storport)

另請參閱

KeAcquireInStackQueuedSpinLock

KeAcquireInStackQueuedSpinLockAtDpcLevel

KeAcquireSpinLock

KeAcquireSpinLockAtDpcLevel

KeReleaseInStackQueuedSpinLock

KeReleaseInStackQueuedSpinLockFromDpcLevel

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel