KeAcquireSpinLockAtDpcLevel マクロ (wdm.h)
KeAcquireSpinLockAtDpcLevel ルーチンは、呼び出し元が IRQL >= DISPATCH_LEVEL で既に実行されているときにスピン ロックを取得します。
構文
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 を使用してスピン ロックを解放する必要があります。
スピン ロックの詳細については、「スピン ロックの 」を参照してください。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
ヘッダー | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 「解説」セクションを参照してください。 |
DDI コンプライアンス規則 を する | HwStorPortProhibitedDDIs(storport)、IrqlDispatch(storport)、SpinLockSafe(storport) |