<div dir="ltr">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.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 27, 2022 at 12:32 AM Mohamad Al-Jaf <<a href="mailto:mohamadaljaf@gmail.com">mohamadaljaf@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Required by the Windows MediaCreationTool21H2.<br>
<br>
Signed-off-by: Mohamad Al-Jaf <<a href="mailto:mohamadaljaf@gmail.com" target="_blank">mohamadaljaf@gmail.com</a>><br>
---<br>
v3: - Rebase patch<br>
- Fix unknown argument names<br>
I changed unknown5 to src after I saw the debug output but got<br>
distracted trying to see if I could figure out the other parameters<br>
and forgot to rename them.<br>
---<br>
dlls/wdscore/main.c | 28 ++++++++++++++++++++++++++++<br>
dlls/wdscore/wdscore.spec | 4 ++--<br>
dlls/wdscore/wdscore_internal.h | 27 +++++++++++++++++++++++++++<br>
3 files changed, 57 insertions(+), 2 deletions(-)<br>
<br>
diff --git a/dlls/wdscore/main.c b/dlls/wdscore/main.c<br>
index 3bd5eed8ec5..bda01772d9f 100644<br>
--- a/dlls/wdscore/main.c<br>
+++ b/dlls/wdscore/main.c<br>
@@ -74,3 +74,31 @@ LPVOID WINAPI ConstructPartialMsgVW( WdsLogLevel level, LPCWSTR msg, va_list arg<br>
FIXME( "%u %s - stub\n", level, debugstr_w(msg) );<br>
return NULL;<br>
}<br>
+<br>
+<br>
+/***********************************************************************<br>
+ * WdsSetupLogMessageA (wdscore.@)<br>
+ */<br>
+HRESULT WINAPI WdsSetupLogMessageA( WdsLogSource log, LPCSTR unknown1, LPCSTR unknown2,<br>
+ ULONG unknown3, LPCSTR unknown4, LPCSTR src,<br>
+ void* ip, ULONG unknown5, void* unknown6, UINT unknown7 )<br>
+{<br>
+ FIXME( "%u, %s, %s, %u, %s, %s, %p, %u, %p, %u - stub\n", log, debugstr_a(unknown1),<br>
+ debugstr_a(unknown2), unknown3, debugstr_a(unknown4), debugstr_a(src),<br>
+ ip, unknown5, unknown6, unknown7 );<br>
+ return S_OK;<br>
+}<br>
+<br>
+<br>
+/***********************************************************************<br>
+ * WdsSetupLogMessageW (wdscore.@)<br>
+ */<br>
+HRESULT WINAPI WdsSetupLogMessageW( WdsLogSource log, LPCWSTR unknown1, LPCWSTR unknown2,<br>
+ ULONG unknown3, LPCWSTR unknown4, LPCWSTR src,<br>
+ void* ip, ULONG unknown5, void* unknown6, UINT unknown7 )<br>
+{<br>
+ FIXME( "%u, %s, %s, %u, %s, %s, %p, %u, %p, %u - stub\n", log, debugstr_w(unknown1),<br>
+ debugstr_w(unknown2), unknown3, debugstr_w(unknown4), debugstr_w(src),<br>
+ ip, unknown5, unknown6, unknown7 );<br>
+ return S_OK;<br>
+}<br>
diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec<br>
index b14778001a8..18de37d1ed7 100644<br>
--- a/dlls/wdscore/wdscore.spec<br>
+++ b/dlls/wdscore/wdscore.spec<br>
@@ -150,8 +150,8 @@<br>
@ stub WdsSetUILanguage<br>
@ stub WdsSetupLogDestroy<br>
@ stub WdsSetupLogInit<br>
-@ stub WdsSetupLogMessageA<br>
-@ stub WdsSetupLogMessageW<br>
+@ stdcall WdsSetupLogMessageA(long str str long str str ptr long ptr long)<br>
+@ stdcall WdsSetupLogMessageW(long wstr wstr long wstr wstr ptr long ptr long)<br>
@ stub WdsSubscribeEx<br>
@ stub WdsTerminate<br>
@ stub WdsUnlockExecutionGroup<br>
diff --git a/dlls/wdscore/wdscore_internal.h b/dlls/wdscore/wdscore_internal.h<br>
index b5cbe3c8c25..f029023f8ce 100644<br>
--- a/dlls/wdscore/wdscore_internal.h<br>
+++ b/dlls/wdscore/wdscore_internal.h<br>
@@ -19,6 +19,33 @@<br>
#ifndef __WDSCORE_INTERNAL_H<br>
#define __WDSCORE_INTERNAL_H<br>
<br>
+typedef enum _WdsLogSource {<br>
+ WdsLogSourceDPX = 0x1000000,<br>
+ WdsLogSourceCBS = 0x2000000,<br>
+ WdsLogSourceCSI = 0x1800000,<br>
+ WdsLogSourceSXS = 0x2800000,<br>
+ WdsLogSourceCMI = 0x3000000,<br>
+ WdsLogSourceDEPLOY = 0x4000000,<br>
+ WdsLogSourceDU = 0x5000000,<br>
+ WdsLogSourceIBS = 0x6000000,<br>
+ WdsLogSourceIBSLIB = 0x6400000,<br>
+ WdsLogSourceDIAG = 0x7000000,<br>
+ WdsLogSourceDIAGER = 0x7400000,<br>
+ WdsLogSourceMIG = 0x8000000,<br>
+ WdsLogSourceHWARE = 0x8400000,<br>
+ WdsLogSourceMIGUI = 0x8800000,<br>
+ WdsLogSourceUI = 0xA000000,<br>
+ WdsLogSourceCONX = 0xA400000,<br>
+ WdsLogSourceMOUPG = 0xA800000,<br>
+ WdsLogSourceWDS = 0xB000000,<br>
+ WdsLogSourceDISM = 0xB800000,<br>
+ WdsLogSourcePANTHR = 0x9000000,<br>
+ WdsLogSourceWINPE = 0xC000000,<br>
+ WdsLogSourceSP = 0xC800000,<br>
+ WdsLogSourceLIB = 0xD000000,<br>
+ WdsLogSourceTOOL = 0xE000000<br>
+} WdsLogSource;<br>
+<br>
typedef enum _WdsLogLevel {<br>
WdsLogLevelAssert = 0x0000000,<br>
WdsLogLevelFatalError = 0x1000000,<br>
-- <br>
2.35.0<br>
<br>
</blockquote></div>