KeAcquireSpinLockAtDpcLevel マクロ (wdm.h)
呼び出し元が IRQL >= DISPATCH_LEVELで既に実行されている場合、KeAcquireSpinLockAtDpcLevel ルーチンはスピン ロックを取得します。
構文
void KeAcquireSpinLockAtDpcLevel(
[in, out] PKSPIN_LOCK SpinLock
);
パラメーター
[in, out] SpinLock
呼び出し元がストレージを提供する必要がある、初期化されたKSPIN_LOCKスピン ロックへのポインター。 スピン ロックは、ページ以外のプールからである必要があります。
戻り値
なし
解説
ドライバーは、DISPATCH_LEVEL以上の IRQL で既に実行されている場合にのみ、ドライバーのパフォーマンスを向上させるために、KeAcquireSpinLock ではなく KeAcquireSpinLockAtDpcLevel を呼び出します。
ドライバーが IRQL <= APC_LEVELで実行されている場合は、そのルーチンによって IRQL が発生するように KeAcquireSpinLock を呼び出す必要があります。 KeAcquireSpinLockAtDpcLevel は、呼び出し元が IRQL >= DISPATCH_LEVELで既に実行されていることを前提としているため、発生させる必要はありません。
呼び出し元は、 KeReleaseSpinLockFromDpcLevel を使用してスピン ロックをできるだけ早く解放する必要があります。
ロックの詳細については、「スピンロック」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 「解説」を参照してください。 |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport)、 IrqlDispatch(storport)、 SpinLockSafe(storport) |