次の方法で共有


KeInitializeSpinLock 関数 (wdm.h)

KeInitializeSpinLock ルーチンは、KSPIN_LOCK型の変数を初期化します。

構文

void KeInitializeSpinLock(
  [out] PKSPIN_LOCK SpinLock
);

パラメーター

[out] SpinLock

呼び出し元がストレージを提供する必要があるスピン ロックへのポインター。

戻り値

なし

解説

このルーチンは、 KeAcquireSpinLockKeAcquireInStackQueuedSpinLock、またはスピン ロックを引数として必要とするその他のサポート ルーチンへの最初の呼び出しの前に呼び出す必要があります。

スピン ロック オブジェクトの記憶域は、ドライバーによって作成されたデバイス オブジェクトのデバイス拡張機能、ドライバーによって作成されたコントローラー オブジェクトのコントローラー拡張機能、または呼び出し元によって割り当てられた非ページ プール内に存在する必要があります。

この関数は、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

KeAcquireSpinLock

KeAcquireSpinLockAtDpcLevel

KeReleaseInStackQueuedSpinLock

KeReleaseInStackQueuedSpinLockFromDpcLevel

KeReleaseSpinLock

KeReleaseSpinLockFromDpcLevel