From: Zhiyi Zhang zzhang@codeweavers.com
--- dlls/ntdll/actctx.c | 17 +++++++++++++++++ dlls/ntdll/ntdll.spec | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c index 5c7aa6936ac..0f76b95d961 100644 --- a/dlls/ntdll/actctx.c +++ b/dlls/ntdll/actctx.c @@ -5455,6 +5455,23 @@ RTL_ACTIVATION_CONTEXT_STACK_FRAME * FASTCALL RtlActivateActivationContextUnsafe return &frame_extended->Frame; }
+/****************************************************************** + * RtlDeactivateActivationContextUnsafeFast (NTDLL.@) + * + * FIXME: function prototype might be wrong + */ +VOID FASTCALL RtlDeactivateActivationContextUnsafeFast( RTL_CALLER_ALLOCATED_ACTIVATION_CONTEXT_STACK_FRAME_EXTENDED *frame_extended ) +{ + ACTIVATION_CONTEXT_STACK *actctx_stack = NtCurrentTeb()->ActivationContextStackPointer; + ACTIVATION_CONTEXT *context; + + TRACE( "%p\n", frame_extended ); + + context = actctx_stack->ActiveFrame->ActivationContext; + actctx_stack->ActiveFrame = frame_extended->Frame.Previous; + RtlReleaseActivationContext( context ); +} + /****************************************************************** * RtlActivateActivationContextEx (NTDLL.@) */ diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index f79dfd50da5..78da963b969 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -606,7 +606,7 @@ @ stub RtlCutoverTimeToSystemTime @ stdcall RtlDeNormalizeProcessParams(ptr) @ stdcall RtlDeactivateActivationContext(long long) -@ stub RtlDeactivateActivationContextUnsafeFast +@ stdcall -fastcall RtlDeactivateActivationContextUnsafeFast(ptr) @ stub RtlDebugPrintTimes @ stdcall RtlDecodePointer(ptr) @ stdcall RtlDecodeSystemPointer(ptr) RtlDecodePointer