diff --git a/include/wil/resource.h b/include/wil/resource.h index 16621f1d..10693251 100644 --- a/include/wil/resource.h +++ b/include/wil/resource.h @@ -6845,7 +6845,8 @@ namespace details } _IRQL_requires_(DISPATCH_LEVEL) - static void Release(_In_ _IRQL_restores_ const kspin_lock_saved_irql& spinLockSavedIrql) + _IRQL_restores_global_(savedIrql, spinLockSavedIrql) + static void Release(_In_ const kspin_lock_saved_irql& spinLockSavedIrql) { KeReleaseSpinLock(spinLockSavedIrql.spinLock, spinLockSavedIrql.savedIrql); } @@ -6869,7 +6870,7 @@ using kspin_lock_at_dpc_guard = WI_NODISCARD inline _IRQL_requires_max_(DISPATCH_LEVEL) -_IRQL_saves_ +_IRQL_saves_global_(savedIrql, return) _IRQL_raises_(DISPATCH_LEVEL) kspin_lock_guard acquire_kspin_lock(_In_ PKSPIN_LOCK spinLock) { @@ -6905,7 +6906,7 @@ class kernel_spin_lock WI_NODISCARD _IRQL_requires_max_(DISPATCH_LEVEL) - _IRQL_saves_ + _IRQL_saves_global_(savedIrql, return) _IRQL_raises_(DISPATCH_LEVEL) kspin_lock_guard acquire() WI_NOEXCEPT { @@ -7013,6 +7014,8 @@ using fast_mutex_guard = unique_any