From e24eb501d3880c59ce0495cc5ef60b2f1db83017 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 21 May 2015 06:43:29 +0200
Subject: [PATCH] advapi32: Forward ImpersonateAnonymousToken to ntdll.

---
 dlls/advapi32/advapi32.spec                              | 2 +-
 dlls/advapi32/security.c                                 | 9 +++++++++
 .../api-ms-win-security-base-l1-1-0.spec                 | 2 +-
 .../api-ms-win-security-base-l1-2-0.spec                 | 2 +-
 4 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/dlls/advapi32/advapi32.spec b/dlls/advapi32/advapi32.spec
index e885684ea09..460014234ac 100644
--- a/dlls/advapi32/advapi32.spec
+++ b/dlls/advapi32/advapi32.spec
@@ -376,7 +376,7 @@
 @ stub I_ScSetServiceBitsA
 # @ stub I_ScSetServiceBitsW
 # @ stub IdentifyCodeAuthzLevelW
-# @ stub ImpersonateAnonymousToken
+@ stdcall ImpersonateAnonymousToken(long)
 @ stdcall ImpersonateLoggedOnUser(long)
 @ stdcall ImpersonateNamedPipeClient(long)
 @ stdcall ImpersonateSelf(long)
diff --git a/dlls/advapi32/security.c b/dlls/advapi32/security.c
index d27b2e7d60a..028dcc6d9e3 100644
--- a/dlls/advapi32/security.c
+++ b/dlls/advapi32/security.c
@@ -2500,6 +2500,15 @@ BOOL WINAPI ImpersonateLoggedOnUser(HANDLE hToken)
     return TRUE;
 }
 
+/******************************************************************************
+ * ImpersonateAnonymousToken [ADVAPI32.@]
+ */
+BOOL WINAPI ImpersonateAnonymousToken( HANDLE thread )
+{
+    TRACE("(%p)\n", thread);
+    return set_ntstatus( NtImpersonateAnonymousToken( thread ) );
+}
+
 /******************************************************************************
  * AccessCheck [ADVAPI32.@]
  */
diff --git a/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec b/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec
index 548ae8376e0..42777068803 100644
--- a/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec
+++ b/dlls/api-ms-win-security-base-l1-1-0/api-ms-win-security-base-l1-1-0.spec
@@ -58,7 +58,7 @@
 @ stdcall GetSidSubAuthorityCount(ptr) advapi32.GetSidSubAuthorityCount
 @ stdcall GetTokenInformation(long long ptr long ptr) advapi32.GetTokenInformation
 @ stub GetWindowsAccountDomainSid
-@ stub ImpersonateAnonymousToken
+@ stdcall ImpersonateAnonymousToken(long) advapi32.ImpersonateAnonymousToken
 @ stdcall ImpersonateLoggedOnUser(long) advapi32.ImpersonateLoggedOnUser
 @ stdcall ImpersonateSelf(long) advapi32.ImpersonateSelf
 @ stdcall InitializeAcl(ptr long long) advapi32.InitializeAcl
diff --git a/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec b/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec
index d2681837f4d..3adef23e82a 100644
--- a/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec
+++ b/dlls/api-ms-win-security-base-l1-2-0/api-ms-win-security-base-l1-2-0.spec
@@ -64,7 +64,7 @@
 @ stdcall GetSidSubAuthorityCount(ptr) advapi32.GetSidSubAuthorityCount
 @ stdcall GetTokenInformation(long long ptr long ptr) advapi32.GetTokenInformation
 @ stub GetWindowsAccountDomainSid
-@ stub ImpersonateAnonymousToken
+@ stdcall ImpersonateAnonymousToken(long) advapi32.ImpersonateAnonymousToken
 @ stdcall ImpersonateLoggedOnUser(long) advapi32.ImpersonateLoggedOnUser
 @ stdcall ImpersonateSelf(long) advapi32.ImpersonateSelf
 @ stdcall InitializeAcl(ptr long long) advapi32.InitializeAcl
-- 
GitLab