diff --git a/dlls/api-ms-win-core-util-l1-1-0/api-ms-win-core-util-l1-1-0.spec b/dlls/api-ms-win-core-util-l1-1-0/api-ms-win-core-util-l1-1-0.spec
index 471ee4273b666592aa12a7c7ee652961155c78f4..587b06baeaf4250c1e6313ba25969eb251591af3 100644
--- a/dlls/api-ms-win-core-util-l1-1-0/api-ms-win-core-util-l1-1-0.spec
+++ b/dlls/api-ms-win-core-util-l1-1-0/api-ms-win-core-util-l1-1-0.spec
@@ -1,5 +1,5 @@
 @ stdcall Beep(long long) kernel32.Beep
 @ stdcall DecodePointer(ptr) kernel32.DecodePointer
-@ stub DecodeSystemPointer
+@ stdcall DecodeSystemPointer(ptr) kernel32.DecodeSystemPointer
 @ stdcall EncodePointer(ptr) kernel32.EncodePointer
-@ stub EncodeSystemPointer
+@ stdcall EncodeSystemPointer(ptr) kernel32.EncodeSystemPointer
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 239965ff7d01634e3702ad00cabbdf5a8261c5af..2d82c71eabfee0d820cb022fe4cd5fc36dd6e140 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -355,7 +355,7 @@
 @ stdcall DebugBreakProcess(long)
 @ stdcall DebugSetProcessKillOnExit(long)
 @ stdcall DecodePointer(ptr) ntdll.RtlDecodePointer
-# @ stub DecodeSystemPointer ( -> ntdll.RtlDecodeSystemPointer)
+@ stdcall DecodeSystemPointer(ptr) ntdll.RtlDecodeSystemPointer
 @ stdcall DefineDosDeviceA(long str str)
 @ stdcall DefineDosDeviceW(long wstr wstr)
 @ stdcall DelayLoadFailureHook(str str)
@@ -390,7 +390,7 @@
 @ stdcall DuplicateHandle(long long long ptr long long long)
 # @ stub EnableThreadProfiling
 @ stdcall EncodePointer(ptr) ntdll.RtlEncodePointer
-# @ stub EncodeSystemPointer ( -> ntdll.RtlEncodeSystemPointer)
+@ stdcall EncodeSystemPointer(ptr) ntdll.RtlEncodeSystemPointer
 @ stdcall EndUpdateResourceA(long long)
 @ stdcall EndUpdateResourceW(long long)
 @ stdcall EnterCriticalSection(ptr) ntdll.RtlEnterCriticalSection
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index e35ef8be7c3392d830eaf6a5a76faa2b48bf3ecb..de9404c88cece792e46f00de91a74874cc3e7629 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -101,7 +101,7 @@
 @ stdcall CreateWellKnownSid(long ptr ptr ptr) advapi32.CreateWellKnownSid
 @ stdcall DebugBreak() kernel32.DebugBreak
 @ stdcall DecodePointer(ptr) kernel32.DecodePointer
-@ stub DecodeSystemPointer
+@ stdcall DecodeSystemPointer(ptr) kernel32.DecodeSystemPointer
 @ stdcall DefineDosDeviceW(long wstr wstr) kernel32.DefineDosDeviceW
 @ stdcall DeleteAce(ptr long) advapi32.DeleteAce
 @ stdcall DeleteCriticalSection(ptr) kernel32.DeleteCriticalSection
@@ -120,7 +120,7 @@
 @ stdcall DuplicateToken(long long ptr) advapi32.DuplicateToken
 @ stdcall DuplicateTokenEx(long long ptr long long ptr) advapi32.DuplicateTokenEx
 @ stdcall EncodePointer(ptr) kernel32.EncodePointer
-@ stub EncodeSystemPointer
+@ stdcall EncodeSystemPointer(ptr) kernel32.EncodeSystemPointer
 @ stdcall EnterCriticalSection(ptr) kernel32.EnterCriticalSection
 @ stdcall EnumCalendarInfoExEx(ptr wstr long wstr long long) kernel32.EnumCalendarInfoExEx
 @ stdcall EnumCalendarInfoExW(ptr long long long) kernel32.EnumCalendarInfoExW
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 5f8ee542458cba7aa6e80e88287c6622dab4da56..244a72141b83dc9302fccf8e950102f8a92af478 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -519,7 +519,7 @@
 @ stub RtlDeactivateActivationContextUnsafeFast
 @ stub RtlDebugPrintTimes
 @ stdcall RtlDecodePointer(ptr)
-# @ stub RtlDecodeSystemPointer
+@ stdcall RtlDecodeSystemPointer(ptr) RtlDecodePointer
 @ stdcall RtlDecompressBuffer(long ptr long ptr long ptr)
 @ stdcall RtlDecompressFragment(long ptr long ptr long long ptr ptr)
 @ stub RtlDefaultNpAcl
@@ -562,7 +562,7 @@
 @ stdcall RtlEmptyAtomTable(ptr long)
 # @ stub RtlEnableEarlyCriticalSectionEventCreation
 @ stdcall RtlEncodePointer(ptr)
-# @ stub RtlEncodeSystemPointer
+@ stdcall RtlEncodeSystemPointer(ptr) RtlEncodePointer
 @ stdcall -arch=win32 -ret64 RtlEnlargedIntegerMultiply(long long)
 @ stdcall -arch=win32 RtlEnlargedUnsignedDivide(int64 long ptr)
 @ stdcall -arch=win32 -ret64 RtlEnlargedUnsignedMultiply(long long)
diff --git a/include/winbase.h b/include/winbase.h
index 99e3107975d3e9867ef61c22cca2a9a7fd8ce4b0..521d2dadb65cdd4dfb6e097d8549a001108a46bf 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -1819,7 +1819,8 @@ WINBASEAPI BOOL        WINAPI DebugActiveProcessStop(DWORD);
 WINBASEAPI void        WINAPI DebugBreak(void);
 WINBASEAPI BOOL        WINAPI DebugBreakProcess(HANDLE);
 WINBASEAPI BOOL        WINAPI DebugSetProcessKillOnExit(BOOL);
-WINBASEAPI PVOID       WINAPI DecodePointer(PVOID);
+WINBASEAPI void *      WINAPI DecodePointer(void *);
+WINBASEAPI void *      WINAPI DecodeSystemPointer(void *);
 WINADVAPI  BOOL        WINAPI DecryptFileA(LPCSTR,DWORD);
 WINADVAPI  BOOL        WINAPI DecryptFileW(LPCWSTR,DWORD);
 #define                       DecryptFile WINELIB_NAME_AW(DecryptFile)
@@ -1853,7 +1854,8 @@ WINBASEAPI BOOL        WINAPI DuplicateHandle(HANDLE,HANDLE,HANDLE,HANDLE*,DWORD
 WINADVAPI  BOOL        WINAPI DuplicateToken(HANDLE,SECURITY_IMPERSONATION_LEVEL,PHANDLE);
 WINADVAPI  BOOL        WINAPI DuplicateTokenEx(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
 WINBASEAPI BOOL        WINAPI EscapeCommFunction(HANDLE,UINT);
-WINBASEAPI PVOID       WINAPI EncodePointer(PVOID);
+WINBASEAPI void *      WINAPI EncodePointer(void *);
+WINBASEAPI void *      WINAPI EncodeSystemPointer(void *);
 WINADVAPI  BOOL        WINAPI EncryptFileA(LPCSTR);
 WINADVAPI  BOOL        WINAPI EncryptFileW(LPCWSTR);
 #define                       EncryptFile WINELIB_NAME_AW(EncryptFile)
diff --git a/tools/make_specfiles b/tools/make_specfiles
index d658f308eb41de532f83ad99c559bb75f407b6d2..947cde7fee58bfa30f777b636cb654d966dd730a 100755
--- a/tools/make_specfiles
+++ b/tools/make_specfiles
@@ -177,6 +177,7 @@ my @dll_groups =
   "api-ms-win-core-wow64-l1-1-0",
   "api-ms-win-core-xstate-l2-1-0",
   "api-ms-win-core-errorhandling-l1-1-2",
+  "api-ms-win-core-util-l1-1-0",
  ],
  [
   "kernel32",