共用方式為


同步與多執行緒的 DPC

若要同步處理從 CustomThreadedDpc 常式內部和外部存取之記憶體位置的存取,驅動程式可以使用一般微調鎖定或佇列微調鎖定。 這樣做時,驅動程式必須遵守特定規則,才能在 IRQL = PASSIVE_LEVEL 和 IRQL = DISPATCH_LEVEL 正確同步處理,因為 CustomThreadedDpc 常式可以在這兩個 IRQL 執行。

對於普通自旋鎖,以下規則適用:

佇列自旋鎖的規則相似:

因為 KeAcquireSpinLockForDpcKeAcquireInStackQueuedSpinLockForDpc 在 DISPATCH_LEVEL 呼叫時不會重設 IRQL,所以它們的執行速度分別比 KeAcquireSpinLockKeAcquireInStackQueuedSpinLock 更快。

如需微調鎖定的詳細資訊,請參閱 微調鎖定