Just realized that I didn't add the first argument in������WdsSetupLogMessage. It's supposed to have 11 arguments, not 10. I'll submit a revision. Sorry about that.

On Thu, Jan 27, 2022 at 12:32 AM Mohamad Al-Jaf <mohamadaljaf@gmail.com> wrote:
Required by the Windows MediaCreationTool21H2.

Signed-off-by: Mohamad Al-Jaf <mohamadaljaf@gmail.com>
---
v3: - Rebase patch
������ ������ - Fix unknown argument names
I changed unknown5 to src after I saw the debug output but got
distracted trying to see if I could figure out the other parameters
and forgot to rename them.
---
������dlls/wdscore/main.c������ ������ ������ ������ ������ ������ ������| 28 ++++++++++++++++++++++++++++
������dlls/wdscore/wdscore.spec������ ������ ������ ������|������ 4 ++--
������dlls/wdscore/wdscore_internal.h | 27 +++++++++++++++++++++++++++
������3 files changed, 57 insertions(+), 2 deletions(-)

diff --git a/dlls/wdscore/main.c b/dlls/wdscore/main.c
index 3bd5eed8ec5..bda01772d9f 100644
--- a/dlls/wdscore/main.c
+++ b/dlls/wdscore/main.c
@@ -74,3 +74,31 @@ LPVOID WINAPI ConstructPartialMsgVW( WdsLogLevel level, LPCWSTR msg, va_list arg
������ ������ ������FIXME( "%u %s - stub\n", level, debugstr_w(msg) );
������ ������ ������return NULL;
������}
+
+
+/***********************************************************************
+ *������ ������ ������ ������ ������ ������WdsSetupLogMessageA (wdscore.@)
+ */
+HRESULT WINAPI WdsSetupLogMessageA( WdsLogSource log, LPCSTR unknown1, LPCSTR unknown2,
+������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ULONG unknown3, LPCSTR unknown4, LPCSTR src,
+������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ void* ip, ULONG unknown5, void* unknown6, UINT unknown7 )
+{
+������ ������ FIXME( "%u, %s, %s, %u, %s, %s, %p, %u, %p, %u - stub\n", log, debugstr_a(unknown1),
+������ ������ ������ ������ ������ ������debugstr_a(unknown2), unknown3, debugstr_a(unknown4), debugstr_a(src),
+������ ������ ������ ������ ������ ������ip, unknown5, unknown6, unknown7 );
+������ ������ return S_OK;
+}
+
+
+/***********************************************************************
+ *������ ������ ������ ������ ������ ������WdsSetupLogMessageW (wdscore.@)
+ */
+HRESULT WINAPI WdsSetupLogMessageW( WdsLogSource log, LPCWSTR unknown1, LPCWSTR unknown2,
+������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ULONG unknown3, LPCWSTR unknown4, LPCWSTR src,
+������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ ������ void* ip, ULONG unknown5, void* unknown6, UINT unknown7 )
+{
+������ ������ FIXME( "%u, %s, %s, %u, %s, %s, %p, %u, %p, %u - stub\n", log, debugstr_w(unknown1),
+������ ������ ������ ������ ������ ������debugstr_w(unknown2), unknown3, debugstr_w(unknown4), debugstr_w(src),
+������ ������ ������ ������ ������ ������ip, unknown5, unknown6, unknown7 );
+������ ������ return S_OK;
+}
diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec
index b14778001a8..18de37d1ed7 100644
--- a/dlls/wdscore/wdscore.spec
+++ b/dlls/wdscore/wdscore.spec
@@ -150,8 +150,8 @@
������@ stub WdsSetUILanguage
������@ stub WdsSetupLogDestroy
������@ stub WdsSetupLogInit
-@ stub WdsSetupLogMessageA
-@ stub WdsSetupLogMessageW
+@ stdcall WdsSetupLogMessageA(long str str long str str ptr long ptr long)
+@ stdcall WdsSetupLogMessageW(long wstr wstr long wstr wstr ptr long ptr long)
������@ stub WdsSubscribeEx
������@ stub WdsTerminate
������@ stub WdsUnlockExecutionGroup
diff --git a/dlls/wdscore/wdscore_internal.h b/dlls/wdscore/wdscore_internal.h
index b5cbe3c8c25..f029023f8ce 100644
--- a/dlls/wdscore/wdscore_internal.h
+++ b/dlls/wdscore/wdscore_internal.h
@@ -19,6 +19,33 @@
������#ifndef __WDSCORE_INTERNAL_H
������#define __WDSCORE_INTERNAL_H

+typedef enum _WdsLogSource {
+������ ������ WdsLogSourceDPX������ ������ = 0x1000000,
+������ ������ WdsLogSourceCBS������ ������ = 0x2000000,
+������ ������ WdsLogSourceCSI������ ������ = 0x1800000,
+������ ������ WdsLogSourceSXS������ ������ = 0x2800000,
+������ ������ WdsLogSourceCMI������ ������ = 0x3000000,
+������ ������ WdsLogSourceDEPLOY = 0x4000000,
+������ ������ WdsLogSourceDU������ ������ ������= 0x5000000,
+������ ������ WdsLogSourceIBS������ ������ = 0x6000000,
+������ ������ WdsLogSourceIBSLIB = 0x6400000,
+������ ������ WdsLogSourceDIAG������ ������= 0x7000000,
+������ ������ WdsLogSourceDIAGER = 0x7400000,
+������ ������ WdsLogSourceMIG������ ������ = 0x8000000,
+������ ������ WdsLogSourceHWARE������ = 0x8400000,
+������ ������ WdsLogSourceMIGUI������ = 0x8800000,
+������ ������ WdsLogSourceUI������ ������ ������= 0xA000000,
+������ ������ WdsLogSourceCONX������ ������= 0xA400000,
+������ ������ WdsLogSourceMOUPG������ = 0xA800000,
+������ ������ WdsLogSourceWDS������ ������ = 0xB000000,
+������ ������ WdsLogSourceDISM������ ������= 0xB800000,
+������ ������ WdsLogSourcePANTHR = 0x9000000,
+������ ������ WdsLogSourceWINPE������ = 0xC000000,
+������ ������ WdsLogSourceSP������ ������ ������= 0xC800000,
+������ ������ WdsLogSourceLIB������ ������ = 0xD000000,
+������ ������ WdsLogSourceTOOL������ ������= 0xE000000
+} WdsLogSource;
+
������typedef enum _WdsLogLevel {
������ ������ ������WdsLogLevelAssert������ ������ ������= 0x0000000,
������ ������ ������WdsLogLevelFatalError = 0x1000000,
--
2.35.0