次の方法で共有


同期とスレッド化された DPC

CustomThreadedDpc ルーチンの内部と外部の両方からアクセスされるメモリ位置へのアクセスを同期するために、ドライバーは通常のスピン ロックまたはキューに入っているスピン ロックを使用できます。 この場合、ドライバーは IRQL = PASSIVE_LEVEL および IRQL = DISPATCH_LEVELで正しく同期するために、特定の規則に従う必要があります。 CustomThreadedDpc ルーチンは両方の IRQL で実行できるためです。

通常のスピン ロックの場合は、次の規則が適用されます。

キューに入ったスピン ロックの規則は次のようになります。

KeAcquireSpinLockForDpcKeAcquireInStackQueuedSpinLockForDpc は、DISPATCH_LEVELで呼び出されたときに IRQL をリセットしないため、それぞれ KeAcquireSpinLockKeAcquireInStackQueuedSpinLock よりも高速に実行されます。

スピン ロックの詳細については、「スピン ロックの 」を参照してください。