diff --git a/dlls/secur32/secur32.c b/dlls/secur32/secur32.c
index efe03c1..1e89f8d 100644
--- a/dlls/secur32/secur32.c
+++ b/dlls/secur32/secur32.c
@@ -27,6 +27,7 @@
 #include "sspi.h"
 #include "secur32_priv.h"
 #include "secext.h"
+#include "ntsecapi.h"
 #include "thunks.h"
 
 #include "wine/debug.h"
@@ -940,6 +941,63 @@
     return FALSE;
 }
 
+BOOLEAN WINAPI GetUserNameExA(
+  EXTENDED_NAME_FORMAT NameFormat, LPSTR lpNameBuffer, PULONG nSize)
+{
+    FIXME("%d %p %p\n", NameFormat, lpNameBuffer, nSize);
+    return FALSE;
+}
+
+BOOLEAN WINAPI GetUserNameExW(
+  EXTENDED_NAME_FORMAT NameFormat, LPWSTR lpNameBuffer, PULONG nSize)
+{
+    FIXME("%d %p %p\n", NameFormat, lpNameBuffer, nSize);
+    return FALSE;
+}
+
+NTSTATUS WINAPI LsaCallAuthenticationPackage(
+  HANDLE LsaHandle, ULONG AuthenticationPackage, PVOID ProtocolSubmitBuffer,
+  ULONG SubmitBufferLength, PVOID* ProtocolReturnBuffer, PULONG ReturnBufferLength,
+  NTSTATUS *ProtocolStatus)
+{
+    FIXME("%p %ld %p %ld %p %p %p\n", LsaHandle, AuthenticationPackage,
+          ProtocolSubmitBuffer, SubmitBufferLength, ProtocolReturnBuffer,
+          ReturnBufferLength, ProtocolStatus);
+    return 0;
+}
+
+NTSTATUS WINAPI LsaConnectUntrusted(PHANDLE LsaHandle)
+{
+    FIXME("%p\n", LsaHandle);
+    return 0;
+}
+
+NTSTATUS WINAPI LsaDeregisterLogonProcess(HANDLE LsaHandle)
+{
+    FIXME("%p\n", LsaHandle);
+    return 0;
+}
+
+BOOLEAN WINAPI TranslateNameA(
+  LPCSTR lpAccountName, EXTENDED_NAME_FORMAT AccountNameFormat,
+  EXTENDED_NAME_FORMAT DesiredNameFormat, LPSTR lpTranslatedName,
+  PULONG nSize)
+{
+    FIXME("%p %d %d %p %p\n", lpAccountName, AccountNameFormat,
+          DesiredNameFormat, lpTranslatedName, nSize);
+    return FALSE;
+}
+
+BOOLEAN WINAPI TranslateNameW(
+  LPCWSTR lpAccountName, EXTENDED_NAME_FORMAT AccountNameFormat,
+  EXTENDED_NAME_FORMAT DesiredNameFormat, LPWSTR lpTranslatedName,
+  PULONG nSize)
+{
+    FIXME("%p %d %d %p %p\n", lpAccountName, AccountNameFormat,
+          DesiredNameFormat, lpTranslatedName, nSize);
+    return FALSE;
+}
+
 /***********************************************************************
  *		DllMain (SECUR32.0)
  */
diff --git a/dlls/secur32/secur32.spec b/dlls/secur32/secur32.spec
index 6a85973..6dc8e05 100644
--- a/dlls/secur32/secur32.spec
+++ b/dlls/secur32/secur32.spec
@@ -23,8 +23,8 @@
 @ stdcall GetComputerObjectNameA(long ptr ptr)
 @ stdcall GetComputerObjectNameW(long ptr ptr)
 @ stub GetSecurityUserInfo
-@ stub GetUserNameExA
-@ stub GetUserNameExW
+@ stdcall GetUserNameExA(long ptr ptr)
+@ stdcall GetUserNameExW(long ptr ptr)
 @ stdcall ImpersonateSecurityContext(ptr)
 @ stdcall ImportSecurityContextA(str ptr ptr ptr)
 @ stdcall ImportSecurityContextW(wstr ptr ptr ptr)
@@ -32,9 +32,9 @@
 @ stdcall InitSecurityInterfaceW()
 @ stdcall InitializeSecurityContextA(ptr ptr str long long long ptr long ptr ptr ptr ptr)
 @ stdcall InitializeSecurityContextW(ptr ptr wstr long long long ptr long ptr ptr ptr ptr)
-@ stub LsaCallAuthenticationPackage
-@ stub LsaConnectUntrusted
-@ stub LsaDeregisterLogonProcess
+@ stdcall LsaCallAuthenticationPackage(long long ptr long ptr ptr ptr)
+@ stdcall LsaConnectUntrusted(long)
+@ stdcall LsaDeregisterLogonProcess(long)
 @ stub LsaEnumerateLogonSessions
 @ stub LsaFreeReturnBuffer
 @ stub LsaGetLogonSessionData
@@ -67,7 +67,7 @@
 @ stub SecpFreeMemory
 @ stub SecpTranslateName
 @ stub SecpTranslateNameEx
-@ stub TranslateNameA
-@ stub TranslateNameW
+@ stdcall TranslateNameA(str long long ptr ptr)
+@ stdcall TranslateNameW(wstr long long ptr ptr)
 @ stub UnsealMessage
 @ stdcall VerifySignature(ptr ptr long ptr)
