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