From 045682a4da707a1a93766221a223466388a52e36 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Mon, 2 Sep 2013 14:30:50 +0400 Subject: [PATCH] kernel32: Forward ZombifyActCtx() to ntdll. --- dlls/kernel32/actctx.c | 17 +++++++++-------- dlls/ntdll/actctx.c | 10 ++++++++++ dlls/ntdll/ntdll.spec | 2 +- include/winternl.h | 1 + 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/dlls/kernel32/actctx.c b/dlls/kernel32/actctx.c index 86752b30c17..bcf95ec2191 100644 --- a/dlls/kernel32/actctx.c +++ b/dlls/kernel32/actctx.c @@ -33,9 +33,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(actctx); - -#define ACTCTX_FAKE_HANDLE ((HANDLE) 0xf00baa) - /*********************************************************************** * CreateActCtxA (KERNEL32.@) * @@ -200,14 +197,18 @@ void WINAPI ReleaseActCtx(HANDLE hActCtx) /*********************************************************************** * ZombifyActCtx (KERNEL32.@) * - * Release a reference to an activation context. + * Deactivate context without releasing it. */ BOOL WINAPI ZombifyActCtx(HANDLE hActCtx) { - FIXME("%p\n", hActCtx); - if (hActCtx != ACTCTX_FAKE_HANDLE) - return FALSE; - return TRUE; + NTSTATUS status; + + if ((status = RtlZombifyActivationContext(hActCtx))) + { + SetLastError(RtlNtStatusToDosError(status)); + return FALSE; + } + return TRUE; } /*********************************************************************** diff --git a/dlls/ntdll/actctx.c b/dlls/ntdll/actctx.c index 369e928b5b0..f652c18dafb 100644 --- a/dlls/ntdll/actctx.c +++ b/dlls/ntdll/actctx.c @@ -4138,6 +4138,16 @@ void WINAPI RtlReleaseActivationContext( HANDLE handle ) if ((actctx = check_actctx( handle ))) actctx_release( actctx ); } +/****************************************************************** + * RtlZombifyActivationContext (NTDLL.@) + * + * FIXME: function prototype might be wrong + */ +NTSTATUS WINAPI RtlZombifyActivationContext( HANDLE handle ) +{ + FIXME("%p: stub\n", handle); + return STATUS_NOT_IMPLEMENTED; +} /****************************************************************** * RtlActivateActivationContext (NTDLL.@) diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index dbef5132969..cb120dac756 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -934,7 +934,7 @@ @ stdcall RtlWriteRegistryValue(long ptr ptr long ptr long) @ stub RtlZeroHeap @ stdcall RtlZeroMemory(ptr long) -# @ stub RtlZombifyActivationContext +@ stdcall RtlZombifyActivationContext(ptr) # @ stub RtlpApplyLengthFunction # @ stub RtlpEnsureBufferSize # @ stub RtlpNotOwnerCriticalSection diff --git a/include/winternl.h b/include/winternl.h index 41ba0a0009f..bb7a3813e5e 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -2540,6 +2540,7 @@ NTSYSAPI NTSTATUS WINAPI RtlWalkHeap(HANDLE,PVOID); NTSYSAPI NTSTATUS WINAPI RtlWow64EnableFsRedirection(BOOLEAN); NTSYSAPI NTSTATUS WINAPI RtlWow64EnableFsRedirectionEx(ULONG,ULONG*); NTSYSAPI NTSTATUS WINAPI RtlWriteRegistryValue(ULONG,PCWSTR,PCWSTR,ULONG,PVOID,ULONG); +NTSYSAPI NTSTATUS WINAPI RtlZombifyActivationContext(HANDLE); NTSYSAPI NTSTATUS WINAPI RtlpNtCreateKey(PHANDLE,ACCESS_MASK,const OBJECT_ATTRIBUTES*,ULONG,const UNICODE_STRING*,ULONG,PULONG); NTSYSAPI NTSTATUS WINAPI RtlpNtEnumerateSubKey(HANDLE,UNICODE_STRING *, ULONG); NTSYSAPI NTSTATUS WINAPI RtlpWaitForCriticalSection(RTL_CRITICAL_SECTION *); -- 2.11.4.GIT