共用方式為


同步處理和執行緒的 DPC

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

針對一般微調鎖定,適用下列規則:

佇列微調鎖定的規則類似:

由於 KeAcquireSpinLockForDpcKeAcquireInStackQueuedSpinLockForDpc 在DISPATCH_LEVEL呼叫時不會重設 IRQL,因此它們會分別執行得比 KeAcquireSpinLockKeAcquireInStackQueuedSpinLock更快。

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