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 で実行されるバイナリをビルドする場合 (したがって、HLK テストに合格するには NX プールの使用Windows 10必要があります)、を定義WIN9X_COMPAT_SPINLOCK
する必要があります。 それ以外の場合は、 が表示 Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39)
される場合があります。
ロックの詳細については、「スピンロック」を参照してください。
このルーチンの呼び出し元は、任意の IRQL で実行できます。 通常、呼び出し元は IRQL = AddDevice ルーチンのPASSIVE_LEVELで実行されています。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 任意のレベル (「解説」セクションを参照) |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport) |
こちらもご覧ください
KeAcquireInStackQueuedSpinLock
KeAcquireInStackQueuedSpinLockAtDpcLevel
KeReleaseInStackQueuedSpinLock