Nikolay Sivov : kernel32: Forward ZombifyActCtx() to ntdll.
Alexandre Julliard
julliard at winehq.org
Tue Sep 3 13:38:03 CDT 2013
Module: wine
Branch: master
Commit: 045682a4da707a1a93766221a223466388a52e36
URL: http://source.winehq.org/git/wine.git/?a=commit;h=045682a4da707a1a93766221a223466388a52e36
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Mon Sep 2 14:30:50 2013 +0400
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 86752b3..bcf95ec 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 369e928..f652c18 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 dbef513..cb120da 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 41ba0a0..bb7a381 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 *);
More information about the wine-cvs
mailing list