次の方法で共有


同期とスレッド DPC

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

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

キューに入ったスピン ロックの規則は次に似ています。

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

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