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 上執行。 呼叫端通常會在 AddDevice 例程中於 IRQL = PASSIVE_LEVEL執行。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何層級 (請參閱一節) |
DDI 合規性規則 | HwStorPortProhibitedDIs(storport) |
另請參閱
KeAcquireInStackQueuedSpinLock
KeAcquireInStackQueuedSpinLockAtDpcLevel
KeReleaseInStackQueuedSpinLock