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 で実行されるバイナリをビルドする場合 (そのため、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