共用方式為


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

KeAcquireSpinLock

KeAcquireSpinLockAtDpcLevel

KeReleaseInStackQueuedSpinLock

KeReleaseInStackQueuedSpinLockFromDpcLevel

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel