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
KeReleaseInStackQueuedSpinLock