Added patch for stub of ntdll.WinSqmIsOptedIn.

This commit is contained in:
Sebastian Lackner 2015-04-18 15:34:28 +02:00
parent b9a1a97057
commit cf4a1f5af2
5 changed files with 81 additions and 1 deletions

View File

@ -39,9 +39,10 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
-----------------------------------
**Bug fixes and features included in the next upcoming release [9]:**
**Bug fixes and features included in the next upcoming release [10]:**
* Add implementation for mfplat.MFTRegister ([Wine Bug #37811](https://bugs.winehq.org/show_bug.cgi?id=37811))
* Add stub for WinSqmIsOptedIn ([Wine Bug #38388](https://bugs.winehq.org/show_bug.cgi?id=38388))
* Add support for process specific debug channels
* Add support for wbemprox Win32_SystemEnclosure table ([Wine Bug #34517](https://bugs.winehq.org/show_bug.cgi?id=34517))
* Calculate msvcrt exponential math operations with higher precision ([Wine Bug #37149](https://bugs.winehq.org/show_bug.cgi?id=37149))

1
debian/changelog vendored
View File

@ -15,6 +15,7 @@ wine-staging (1.7.41) UNRELEASED; urgency=low
* Added patch to implement support for wbemprox Win32_SystemEnclosure table.
* Added patch to fix handling of opening read-only files for FILE_DELETE_ON_CLOSE.
* Added patch for implementation of mfplat.MFTRegister.
* Added patch for stub of ntdll.WinSqmIsOptedIn.
* Added tests for RtlIpv6AddressToString and RtlIpv6AddressToStringEx.
* Removed patches to fix invalid memory access in get_registry_locale_info (accepted upstream).
* Removed patches to avoid repeated FIXMEs in PsLookupProcessByProcessId stub (accepted upstream).

View File

@ -0,0 +1,74 @@
From 335eee22883daada4e4c95c0ac13c64fe92e3d3a Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sat, 18 Apr 2015 15:25:30 +0200
Subject: ntdll: Add stub for WinSqmIsOptedIn.
Based on a patch by Stefan Leichter.
---
dlls/ntdll/ntdll.spec | 1 +
dlls/ntdll/rtl.c | 9 +++++++++
dlls/ntdll/tests/rtl.c | 4 ++++
3 files changed, 14 insertions(+)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 4053388..9225898 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -971,4 +971,5 @@
@ stdcall -ret64 VerSetConditionMask(int64 long long)
@ stdcall WinSqmEndSession(ptr)
+@ stdcall WinSqmIsOptedIn()
@ stdcall WinSqmStartSession(ptr long long)
@ stdcall ZwAcceptConnectPort(ptr long ptr long long ptr) NtAcceptConnectPort
diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c
index 2e87beb..971c964 100644
--- a/dlls/ntdll/rtl.c
+++ b/dlls/ntdll/rtl.c
@@ -1321,6 +1321,15 @@ NTSTATUS WINAPI WinSqmEndSession(PVOID unknown1)
return STATUS_NOT_IMPLEMENTED;
}
+/*********************************************************************
+ * WinSqmIsOptedIn [NTDLL.@]
+ */
+BOOL WINAPI WinSqmIsOptedIn(void)
+{
+ FIXME("() stub!\n");
+ return FALSE;
+}
+
/******************************************************************************
* WinSqmStartSession [NTDLL.@]
*/
diff --git a/dlls/ntdll/tests/rtl.c b/dlls/ntdll/tests/rtl.c
index 1e6c6f8..7b5f07d 100644
--- a/dlls/ntdll/tests/rtl.c
+++ b/dlls/ntdll/tests/rtl.c
@@ -63,6 +63,7 @@ static inline USHORT __my_ushort_swap(USHORT s)
/* Function ptrs for ntdll calls */
static HMODULE hntdll = 0;
static PVOID (WINAPI *pWinSqmStartSession)(PVOID unknown1, DWORD unknown2, DWORD unknown3);
+static BOOL (WINAPI *pWinSqmIsOptedIn)(void);
static NTSTATUS (WINAPI *pWinSqmEndSession)(PVOID unknown1);
static SIZE_T (WINAPI *pRtlCompareMemory)(LPCVOID,LPCVOID,SIZE_T);
static SIZE_T (WINAPI *pRtlCompareMemoryUlong)(PULONG, SIZE_T, ULONG);
@@ -112,6 +113,7 @@ static void InitFunctionPtrs(void)
ok(hntdll != 0, "LoadLibrary failed\n");
if (hntdll) {
pWinSqmStartSession = (void *)GetProcAddress(hntdll, "WinSqmStartSession");
+ pWinSqmIsOptedIn = (void *)GetProcAddress(hntdll, "WinSqmIsOptedIn");
pWinSqmEndSession = (void *)GetProcAddress(hntdll, "WinSqmEndSession");
pRtlCompareMemory = (void *)GetProcAddress(hntdll, "RtlCompareMemory");
pRtlCompareMemoryUlong = (void *)GetProcAddress(hntdll, "RtlCompareMemoryUlong");
@@ -186,6 +188,8 @@ static void test_WinSqm(void)
args = 3 - call_stdcall_func3( pWinSqmStartSession, NULL, 0, 0 ) / 4;
ok(args == 3, "WinSqmStartSession expected to take %d arguments instead of 3\n", args);
+ args = 3 - call_stdcall_func3( pWinSqmIsOptedIn, NULL, 0, 0 ) / 4;
+ ok(args == 0, "WinSqmIsOptedIn expected to take %d arguments instead of 0\n", args);
args = 3 - call_stdcall_func3( pWinSqmEndSession, NULL, 0, 0 ) / 4;
ok(args == 1, "WinSqmEndSession expected to take %d arguments instead of 1\n", args);
--
2.3.5

View File

@ -1 +1,2 @@
Fixes: [31971] ntdll is missing WinSqm[Start|End]Session implementation
Fixes: [38388] Add stub for WinSqmIsOptedIn

View File

@ -3493,14 +3493,17 @@ fi
# |
# | This patchset fixes the following Wine bugs:
# | * [#31971] ntdll is missing WinSqm[Start|End]Session implementation
# | * [#38388] Add stub for WinSqmIsOptedIn
# |
# | Modified files:
# | * dlls/ntdll/ntdll.spec, dlls/ntdll/rtl.c, dlls/ntdll/tests/rtl.c
# |
if test "$enable_ntdll_WinSqm" -eq 1; then
patch_apply ntdll-WinSqm/0001-ntdll-Add-stubs-for-WinSqmStartSession-WinSqmEndSess.patch
patch_apply ntdll-WinSqm/0002-ntdll-Add-stub-for-WinSqmIsOptedIn.patch
(
echo '+ { "Erich E. Hoover", "ntdll: Add stubs for WinSqmStartSession / WinSqmEndSession.", 1 },';
echo '+ { "Sebastian Lackner", "ntdll: Add stub for WinSqmIsOptedIn.", 1 },';
) >> "$patchlist"
fi