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

@@ -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