Wine-Devel
By thread
wine-devel@list.winehq.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
January 2022
- 86 participants
- 2418 messages
Re: Arbitrary DOS device name
by Stefan Dösinger
> Am 27.01.2022 um 01:36 schrieb Daniel Kucera <wine(a)danman.eu>:
>
> How do I load it in wine now?
Have a look at how mountmgr.sys is loaded. Tiere is a service in HKLM\System\CurrentControlSet\Services\MountMgr
Regarding potentially loading the original driver: Do you have a Windows installation with the driver installed? Look at where it is installed in the registry, maybe Wine has the necessary infrastructure to load it if you add it manually. Though all that is not exactly my area of expertise :-/
Jan. 27, 2022
[PATCH v3 5/5] wdscore: Add stubs for WdsSetupLogMessage[AW].
by Mohamad Al-Jaf
Required by the Windows MediaCreationTool21H2.
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)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
Jan. 27, 2022
Re: [PATCH 4/4] wdscore: Add stubs for WdsSetupLogMessage[AW].
by Mohamad Al-Jaf
Hi Connor,
Thanks for the feedback.
I understand, I've submitted a revision.
On Wed, Jan 26, 2022 at 11:31 PM Connor McAdams <cmcadams(a)codeweavers.com>
wrote:
> Hi Mohamad, just noticed something while giving this patch a look over:
>
> > diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec
> > index 51e24d980fa..18de37d1ed7 100644
> > --- a/dlls/wdscore/wdscore.spec
> > +++ b/dlls/wdscore/wdscore.spec
> > @@ -116,7 +116,7 @@
> > @ stub WdsGetBlackboardValue
> > @ stub WdsGetCurrentExecutionGroup
> > @ stub WdsGetSetupLog
> > -@ stub WdsTempDir
> > +@ stub WdsGetTempDir
> > @ stub WdsInitialize
> > @ stub WdsInitializeCallbackArray
> > @ stub WdsInitializeDataBinary
> > @@ -139,7 +139,7 @@
> > @ stub WdsPackCollection
> > @ stub WdsPublish
> > @ stub WdsPublishEx
> > -@ stub WdsPublishImmediateAsynch
> > +@ stub WdsPublishImmediateAsync
> > @ stub WdsPublishImmediateEx
> > @ stub WdsPublishOffline
> > @ stub WdsSeqAlloc
>
> The changes to 'WdsTempDir' and 'WdsPublishImmediateAsynch' seem
> unrelated to this patch. If they should be changed, this should probably
> be done in a separate patch.
>
Jan. 27, 2022
[PATCH v2 5/5] wdscore: Add stubs for WdsSetupLogMessage[AW].
by Mohamad Al-Jaf
Required by the Windows MediaCreationTool21H2.
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com>
---
v2: - Rebase patch
---
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..e503e3127d0 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 unknown6, void* unknown7, UINT unknown8 )
+{
+ 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, unknown6, unknown7, unknown8 );
+ return S_OK;
+}
+
+
+/***********************************************************************
+ * WdsSetupLogMessageW (wdscore.@)
+ */
+HRESULT WINAPI WdsSetupLogMessageW( WdsLogSource log, LPCWSTR unknown1, LPCWSTR unknown2,
+ ULONG unknown3, LPCWSTR unknown4, LPCWSTR src,
+ void* ip, ULONG unknown6, void* unknown7, UINT unknown8 )
+{
+ 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, unknown6, unknown7, unknown8 );
+ 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
Jan. 27, 2022
[PATCH v2 4/5] wdscore: Add stubs for ConstructPartialMsgV[AW].
by Mohamad Al-Jaf
Enables the Windows MediaCreationTool21H2 to run.
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com>
---
v2: - Fix whitespace error in wdscore_internal.h
The debug channel emits a rather long string for msg:
fixme:wdscore:ConstructPartialMsgVW 67108864
L"\5343\7465\7075\614c\676e\6e49\4c69\616f\6564\3a72\
493a\696e\6974\6c61\7a69\3a65\4c20\4e41\2e47\4e49\2049\
6944\6572\7463\726f\2079\203d\7325" - stub
Should I get rid of it?
---
dlls/wdscore/main.c | 22 ++++++++++++++++++++++
dlls/wdscore/wdscore.spec | 4 ++--
dlls/wdscore/wdscore_internal.h | 33 +++++++++++++++++++++++++++++++++
3 files changed, 57 insertions(+), 2 deletions(-)
create mode 100644 dlls/wdscore/wdscore_internal.h
diff --git a/dlls/wdscore/main.c b/dlls/wdscore/main.c
index 8854887a555..3bd5eed8ec5 100644
--- a/dlls/wdscore/main.c
+++ b/dlls/wdscore/main.c
@@ -24,6 +24,8 @@
#include "wine/asm.h"
#include "wine/debug.h"
+#include "wdscore_internal.h"
+
WINE_DEFAULT_DEBUG_CHANNEL(wdscore);
/***********************************************************************
@@ -52,3 +54,23 @@ void *WINAPI CurrentIP(void)
return 0;
}
#endif
+
+
+/***********************************************************************
+ * ConstructPartialMsgVA (wdscore.@)
+ */
+LPVOID WINAPI ConstructPartialMsgVA( WdsLogLevel level, LPCSTR msg, va_list args )
+{
+ FIXME( "%u %s - stub\n", level, debugstr_a(msg) );
+ return NULL;
+}
+
+
+/***********************************************************************
+ * ConstructPartialMsgVW (wdscore.@)
+ */
+LPVOID WINAPI ConstructPartialMsgVW( WdsLogLevel level, LPCWSTR msg, va_list args )
+{
+ FIXME( "%u %s - stub\n", level, debugstr_w(msg) );
+ return NULL;
+}
diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec
index 282b6301688..b14778001a8 100644
--- a/dlls/wdscore/wdscore.spec
+++ b/dlls/wdscore/wdscore.spec
@@ -69,8 +69,8 @@
#@ extern g_bEnableDiagnosticMode
@ stub ConstructPartialMsgIfA
@ stub ConstructPartialMsgIfW
-@ stub ConstructPartialMsgVA
-@ stub ConstructPartialMsgVW
+@ stdcall ConstructPartialMsgVA(long str ptr)
+@ stdcall ConstructPartialMsgVW(long wstr ptr)
@ stdcall CurrentIP()
@ stub EndMajorTask
@ stub EndMinorTask
diff --git a/dlls/wdscore/wdscore_internal.h b/dlls/wdscore/wdscore_internal.h
new file mode 100644
index 00000000000..b5cbe3c8c25
--- /dev/null
+++ b/dlls/wdscore/wdscore_internal.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2022 Mohamad Al-Jaf
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WDSCORE_INTERNAL_H
+#define __WDSCORE_INTERNAL_H
+
+typedef enum _WdsLogLevel {
+ WdsLogLevelAssert = 0x0000000,
+ WdsLogLevelFatalError = 0x1000000,
+ WdsLogLevelError = 0x2000000,
+ WdsLogLevelWarning = 0x3000000,
+ WdsLogLevelInfo = 0x4000000,
+ WdsLogLevelStatus = 0x5000000,
+ WdsLogLevelVerbose = 0x6800000,
+ WdsLogLevelTrace = 0x7000000
+} WdsLogLevel;
+
+#endif /* __WDSCORE_INTERNAL_H */
--
2.35.0
Jan. 27, 2022
[PATCH 3/5] wdscore: Fix spec file entries.
by Mohamad Al-Jaf
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com>
---
dlls/wdscore/wdscore.spec | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec
index 8b6febe6b3b..282b6301688 100644
--- a/dlls/wdscore/wdscore.spec
+++ b/dlls/wdscore/wdscore.spec
@@ -116,7 +116,7 @@
@ stub WdsGetBlackboardValue
@ stub WdsGetCurrentExecutionGroup
@ stub WdsGetSetupLog
-@ stub WdsTempDir
+@ stub WdsGetTempDir
@ stub WdsInitialize
@ stub WdsInitializeCallbackArray
@ stub WdsInitializeDataBinary
@@ -139,7 +139,7 @@
@ stub WdsPackCollection
@ stub WdsPublish
@ stub WdsPublishEx
-@ stub WdsPublishImmediateAsynch
+@ stub WdsPublishImmediateAsync
@ stub WdsPublishImmediateEx
@ stub WdsPublishOffline
@ stub WdsSeqAlloc
@@ -150,8 +150,8 @@
@ stub WdsSetUILanguage
@ stub WdsSetupLogDestroy
@ stub WdsSetupLogInit
-@ stub WdsSetLogMessageA
-@ stub WdsSetLogMessageW
+@ stub WdsSetupLogMessageA
+@ stub WdsSetupLogMessageW
@ stub WdsSubscribeEx
@ stub WdsTerminate
@ stub WdsUnlockExecutionGroup
--
2.35.0
Jan. 27, 2022
[PATCH resend v4 2/5] wdscore: Implement CurrentIP.
by Mohamad Al-Jaf
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51850
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com>
---
v4: - Load the wdscore dll in tests (Thanks Stefan Dösinger).
- Remove unnecessary 0 in i386 and x86_64 assembly code.
I had to resend this patch even though Giovanni Mascellani signed
off on it. I'm not sure if it would be acceptable to add their
signature in the file.
The other patches in this patchset depend on this one.
---
configure.ac | 1 +
dlls/wdscore/Makefile.in | 3 ++
dlls/wdscore/main.c | 54 ++++++++++++++++++++++++++++
dlls/wdscore/tests/Makefile.in | 4 +++
dlls/wdscore/tests/main.c | 65 ++++++++++++++++++++++++++++++++++
dlls/wdscore/wdscore.spec | 2 +-
6 files changed, 128 insertions(+), 1 deletion(-)
create mode 100644 dlls/wdscore/main.c
create mode 100644 dlls/wdscore/tests/Makefile.in
create mode 100644 dlls/wdscore/tests/main.c
diff --git a/configure.ac b/configure.ac
index b42cb8a5346..a50881cc2fb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3347,6 +3347,7 @@ WINE_CONFIG_MAKEFILE(dlls/wbemdisp/tests)
WINE_CONFIG_MAKEFILE(dlls/wbemprox)
WINE_CONFIG_MAKEFILE(dlls/wbemprox/tests)
WINE_CONFIG_MAKEFILE(dlls/wdscore)
+WINE_CONFIG_MAKEFILE(dlls/wdscore/tests)
WINE_CONFIG_MAKEFILE(dlls/webservices)
WINE_CONFIG_MAKEFILE(dlls/webservices/tests)
WINE_CONFIG_MAKEFILE(dlls/websocket)
diff --git a/dlls/wdscore/Makefile.in b/dlls/wdscore/Makefile.in
index 20ba1d3b1c9..2020e72c7bb 100644
--- a/dlls/wdscore/Makefile.in
+++ b/dlls/wdscore/Makefile.in
@@ -1,3 +1,6 @@
MODULE = wdscore.dll
EXTRADLLFLAGS = -Wb,--prefer-native
+
+C_SRCS = \
+ main.c
diff --git a/dlls/wdscore/main.c b/dlls/wdscore/main.c
new file mode 100644
index 00000000000..8854887a555
--- /dev/null
+++ b/dlls/wdscore/main.c
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2022 Mohamad Al-Jaf
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+
+#include "wine/asm.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(wdscore);
+
+/***********************************************************************
+ * CurrentIP (wdscore.@)
+ */
+#ifdef __i386__
+__ASM_STDCALL_FUNC(CurrentIP, 0,
+ "movl (%esp), %eax\n\t"
+ "ret" )
+#elif defined(__x86_64__)
+__ASM_STDCALL_FUNC(CurrentIP, 0,
+ "movq (%rsp), %rax\n\t"
+ "ret" )
+#elif defined(__arm__)
+__ASM_STDCALL_FUNC(CurrentIP, 0,
+ "mov r0, lr\n\t"
+ "bx lr" )
+#elif defined(__aarch64__)
+__ASM_STDCALL_FUNC(CurrentIP, 0,
+ "mov x0, lr\n\t"
+ "ret" )
+#else
+void *WINAPI CurrentIP(void)
+{
+ FIXME( "not implemented\n" );
+ return 0;
+}
+#endif
diff --git a/dlls/wdscore/tests/Makefile.in b/dlls/wdscore/tests/Makefile.in
new file mode 100644
index 00000000000..baf4adf23a1
--- /dev/null
+++ b/dlls/wdscore/tests/Makefile.in
@@ -0,0 +1,4 @@
+TESTDLL = wdscore.dll
+
+C_SRCS = \
+ main.c
diff --git a/dlls/wdscore/tests/main.c b/dlls/wdscore/tests/main.c
new file mode 100644
index 00000000000..d06a25703c6
--- /dev/null
+++ b/dlls/wdscore/tests/main.c
@@ -0,0 +1,65 @@
+/*
+ * Unit test suite for wdscore
+ *
+ * Copyright 2022 Mohamad Al-Jaf
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ */
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+
+#include "wine/test.h"
+
+static HMODULE dll;
+static void* (WINAPI *pCurrentIP)(void);
+
+static BOOL init_function_pointers(void)
+{
+ dll = LoadLibraryA("wdscore.dll");
+
+ if (dll)
+ {
+ pCurrentIP = (void*)GetProcAddress(dll, "CurrentIP");
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static void test_CurrentIP(void)
+{
+ char *cur;
+ char *ret;
+
+ cur = (char*)&test_CurrentIP;
+ ret = (char*)pCurrentIP();
+
+ ok(cur <= ret && ret < (cur + 0x100), "Address %p not in function starting at %p.\n", ret, cur);
+}
+
+START_TEST(main)
+{
+ if (init_function_pointers())
+ {
+ test_CurrentIP();
+ FreeLibrary(dll);
+ }
+ else
+ skip("could not load wdscore.dll\n");
+}
diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec
index 15958b86aba..8b6febe6b3b 100644
--- a/dlls/wdscore/wdscore.spec
+++ b/dlls/wdscore/wdscore.spec
@@ -71,7 +71,7 @@
@ stub ConstructPartialMsgIfW
@ stub ConstructPartialMsgVA
@ stub ConstructPartialMsgVW
-@ stub CurrentIP
+@ stdcall CurrentIP()
@ stub EndMajorTask
@ stub EndMinorTask
@ stub GetMajorTask
--
2.34.1
Jan. 27, 2022
Re: [PATCH 4/4] wdscore: Add stubs for WdsSetupLogMessage[AW].
by Connor McAdams
Hi Mohamad, just noticed something while giving this patch a look over:
> diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec
> index 51e24d980fa..18de37d1ed7 100644
> --- a/dlls/wdscore/wdscore.spec
> +++ b/dlls/wdscore/wdscore.spec
> @@ -116,7 +116,7 @@
> @ stub WdsGetBlackboardValue
> @ stub WdsGetCurrentExecutionGroup
> @ stub WdsGetSetupLog
> -@ stub WdsTempDir
> +@ stub WdsGetTempDir
> @ stub WdsInitialize
> @ stub WdsInitializeCallbackArray
> @ stub WdsInitializeDataBinary
> @@ -139,7 +139,7 @@
> @ stub WdsPackCollection
> @ stub WdsPublish
> @ stub WdsPublishEx
> -@ stub WdsPublishImmediateAsynch
> +@ stub WdsPublishImmediateAsync
> @ stub WdsPublishImmediateEx
> @ stub WdsPublishOffline
> @ stub WdsSeqAlloc
The changes to 'WdsTempDir' and 'WdsPublishImmediateAsynch' seem
unrelated to this patch. If they should be changed, this should probably
be done in a separate patch.
Jan. 27, 2022
[PATCH 4/4] wdscore: Add stubs for WdsSetupLogMessage[AW].
by Mohamad Al-Jaf
Required by the Windows MediaCreationTool21H2.
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com>
---
dlls/wdscore/main.c | 28 ++++++++++++++++++++++++++++
dlls/wdscore/wdscore.spec | 8 ++++----
dlls/wdscore/wdscore_internal.h | 27 +++++++++++++++++++++++++++
3 files changed, 59 insertions(+), 4 deletions(-)
diff --git a/dlls/wdscore/main.c b/dlls/wdscore/main.c
index 3bd5eed8ec5..e503e3127d0 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 unknown6, void* unknown7, UINT unknown8 )
+{
+ 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, unknown6, unknown7, unknown8 );
+ return S_OK;
+}
+
+
+/***********************************************************************
+ * WdsSetupLogMessageW (wdscore.@)
+ */
+HRESULT WINAPI WdsSetupLogMessageW( WdsLogSource log, LPCWSTR unknown1, LPCWSTR unknown2,
+ ULONG unknown3, LPCWSTR unknown4, LPCWSTR src,
+ void* ip, ULONG unknown6, void* unknown7, UINT unknown8 )
+{
+ 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, unknown6, unknown7, unknown8 );
+ return S_OK;
+}
diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec
index 51e24d980fa..18de37d1ed7 100644
--- a/dlls/wdscore/wdscore.spec
+++ b/dlls/wdscore/wdscore.spec
@@ -116,7 +116,7 @@
@ stub WdsGetBlackboardValue
@ stub WdsGetCurrentExecutionGroup
@ stub WdsGetSetupLog
-@ stub WdsTempDir
+@ stub WdsGetTempDir
@ stub WdsInitialize
@ stub WdsInitializeCallbackArray
@ stub WdsInitializeDataBinary
@@ -139,7 +139,7 @@
@ stub WdsPackCollection
@ stub WdsPublish
@ stub WdsPublishEx
-@ stub WdsPublishImmediateAsynch
+@ stub WdsPublishImmediateAsync
@ stub WdsPublishImmediateEx
@ stub WdsPublishOffline
@ stub WdsSeqAlloc
@@ -150,8 +150,8 @@
@ stub WdsSetUILanguage
@ stub WdsSetupLogDestroy
@ stub WdsSetupLogInit
-@ stub WdsSetLogMessageA
-@ stub WdsSetLogMessageW
+@ 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 a418977ee15..078a05b11a5 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
Jan. 27, 2022
[PATCH 3/4] wdscore: Add stubs for ConstructPartialMsgV[AW].
by Mohamad Al-Jaf
Enables the Windows MediaCreationTool21H2 to run.
Signed-off-by: Mohamad Al-Jaf <mohamadaljaf(a)gmail.com>
---
The debug channel emits a rather long string for msg:
fixme:wdscore:ConstructPartialMsgVW 67108864
L"\5343\7465\7075\614c\676e\6e49\4c69\616f\6564\3a72\
493a\696e\6974\6c61\7a69\3a65\4c20\4e41\2e47\4e49\2049\
6944\6572\7463\726f\2079\203d\7325" - stub
Should I get rid of it?
---
dlls/wdscore/main.c | 22 ++++++++++++++++++++++
dlls/wdscore/wdscore.spec | 4 ++--
dlls/wdscore/wdscore_internal.h | 33 +++++++++++++++++++++++++++++++++
3 files changed, 57 insertions(+), 2 deletions(-)
create mode 100644 dlls/wdscore/wdscore_internal.h
diff --git a/dlls/wdscore/main.c b/dlls/wdscore/main.c
index 8854887a555..3bd5eed8ec5 100644
--- a/dlls/wdscore/main.c
+++ b/dlls/wdscore/main.c
@@ -24,6 +24,8 @@
#include "wine/asm.h"
#include "wine/debug.h"
+#include "wdscore_internal.h"
+
WINE_DEFAULT_DEBUG_CHANNEL(wdscore);
/***********************************************************************
@@ -52,3 +54,23 @@ void *WINAPI CurrentIP(void)
return 0;
}
#endif
+
+
+/***********************************************************************
+ * ConstructPartialMsgVA (wdscore.@)
+ */
+LPVOID WINAPI ConstructPartialMsgVA( WdsLogLevel level, LPCSTR msg, va_list args )
+{
+ FIXME( "%u %s - stub\n", level, debugstr_a(msg) );
+ return NULL;
+}
+
+
+/***********************************************************************
+ * ConstructPartialMsgVW (wdscore.@)
+ */
+LPVOID WINAPI ConstructPartialMsgVW( WdsLogLevel level, LPCWSTR msg, va_list args )
+{
+ FIXME( "%u %s - stub\n", level, debugstr_w(msg) );
+ return NULL;
+}
diff --git a/dlls/wdscore/wdscore.spec b/dlls/wdscore/wdscore.spec
index 8b6febe6b3b..51e24d980fa 100644
--- a/dlls/wdscore/wdscore.spec
+++ b/dlls/wdscore/wdscore.spec
@@ -69,8 +69,8 @@
#@ extern g_bEnableDiagnosticMode
@ stub ConstructPartialMsgIfA
@ stub ConstructPartialMsgIfW
-@ stub ConstructPartialMsgVA
-@ stub ConstructPartialMsgVW
+@ stdcall ConstructPartialMsgVA(long str ptr)
+@ stdcall ConstructPartialMsgVW(long wstr ptr)
@ stdcall CurrentIP()
@ stub EndMajorTask
@ stub EndMinorTask
diff --git a/dlls/wdscore/wdscore_internal.h b/dlls/wdscore/wdscore_internal.h
new file mode 100644
index 00000000000..a418977ee15
--- /dev/null
+++ b/dlls/wdscore/wdscore_internal.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2022 Mohamad Al-Jaf
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WDSCORE_INTERNAL_H
+#define __WDSCORE_INTERNAL_H
+
+typedef enum _WdsLogLevel {
+ WdsLogLevelAssert = 0x0000000,
+ WdsLogLevelFatalError = 0x1000000,
+ WdsLogLevelError = 0x2000000,
+ WdsLogLevelWarning = 0x3000000,
+ WdsLogLevelInfo = 0x4000000,
+ WdsLogLevelStatus = 0x5000000,
+ WdsLogLevelVerbose = 0x6800000,
+ WdsLogLevelTrace = 0x7000000
+} WdsLogLevel;
+
+#endif /* __WDSCORE_INTERNAL_H */
\ No newline at end of file
--
2.35.0
Jan. 27, 2022