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 で実行されるバイナリをビルドする場合 (そのため、Windows 10 HLK テストに合格するには NX プールの使用が必要です)、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 コンプライアンス規則 を する | hwStorPortProhibitedDDDIs(storport) を する |
関連項目
KeAcquireInStackQueuedSpinLock
KeAcquireInStackQueuedSpinLockAtDpcLevel
KeReleaseInStackQueuedSpinLock