[PATCH] kernel32: Add K32GetWsChangesEx stub

Louis Lenders xerox.xerox2000x at gmail.com
Mon May 6 15:55:33 CDT 2019



Wine-bug: https://bugs.winehq.org/show_bug.cgi?id=47131

The program is happy with just stub entrypoint in kernel32.spec, but i added stub implementation anyway



Signed-off-by: Louis Lenders <xerox.xerox2000x at gmail.com>
---
 .../api-ms-win-core-psapi-l1-1-0.spec                 |  2 +-
 dlls/kernel32/kernel32.spec                           |  2 +-
 dlls/kernel32/virtual.c                               | 11 +++++++++++
 dlls/kernelbase/kernelbase.spec                       |  2 +-
 dlls/psapi/psapi.spec                                 |  1 +
 include/psapi.h                                       |  7 +++++++
 6 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/dlls/api-ms-win-core-psapi-l1-1-0/api-ms-win-core-psapi-l1-1-0.spec b/dlls/api-ms-win-core-psapi-l1-1-0/api-ms-win-core-psapi-l1-1-0.spec
index c966b3ff0d..c54c107784 100644
--- a/dlls/api-ms-win-core-psapi-l1-1-0/api-ms-win-core-psapi-l1-1-0.spec
+++ b/dlls/api-ms-win-core-psapi-l1-1-0/api-ms-win-core-psapi-l1-1-0.spec
@@ -9,7 +9,7 @@
 @ stdcall K32GetProcessImageFileNameW(long ptr long) kernel32.K32GetProcessImageFileNameW
 @ stdcall K32GetProcessMemoryInfo(long ptr long) kernel32.K32GetProcessMemoryInfo
 @ stdcall K32GetWsChanges(long ptr long) kernel32.K32GetWsChanges
-@ stub K32GetWsChangesEx
+@ stdcall K32GetWsChangesEx(long ptr ptr) kernel32.K32GetWsChangesEx
 @ stdcall K32InitializeProcessForWsWatch(long) kernel32.K32InitializeProcessForWsWatch
 @ stdcall K32QueryWorkingSet(long ptr long) kernel32.K32QueryWorkingSet
 @ stdcall K32QueryWorkingSetEx(long ptr long) kernel32.K32QueryWorkingSetEx
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 295a4dbab6..2e2828e58b 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -1018,7 +1018,7 @@
 @ stdcall K32GetProcessImageFileNameW(long ptr long)
 @ stdcall K32GetProcessMemoryInfo(long ptr long)
 @ stdcall K32GetWsChanges(long ptr long)
-# @ stub K32GetWsChangesEx
+@ stdcall K32GetWsChangesEx(long ptr ptr)
 @ stdcall K32InitializeProcessForWsWatch(long)
 @ stdcall K32QueryWorkingSet(long ptr long)
 @ stdcall K32QueryWorkingSetEx(long ptr long)
diff --git a/dlls/kernel32/virtual.c b/dlls/kernel32/virtual.c
index 59c96bd215..a5a2dfdf27 100644
--- a/dlls/kernel32/virtual.c
+++ b/dlls/kernel32/virtual.c
@@ -724,6 +724,17 @@ BOOL WINAPI K32GetWsChanges(HANDLE process, PPSAPI_WS_WATCH_INFORMATION watchinf
     return TRUE;
 }
 
+/***********************************************************************
+ *           K32GetWsChangesEx (KERNEL32.@)
+ */
+BOOL WINAPI K32GetWsChangesEx(HANDLE process, PSAPI_WS_WATCH_INFORMATION_EX *watchinfoex, DWORD *size)
+{
+    FIXME_(seh)("(%p, %p, %p)\n", process, watchinfoex, size);
+
+    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+    return FALSE;
+}
+
 /***********************************************************************
  *           K32InitializeProcessForWsWatch (KERNEL32.@)
  */
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index 22ea65fe1c..9bba9ae545 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -908,7 +908,7 @@
 @ stdcall K32GetProcessImageFileNameW(long ptr long) kernel32.K32GetProcessImageFileNameW
 @ stdcall K32GetProcessMemoryInfo(long ptr long) kernel32.K32GetProcessMemoryInfo
 @ stdcall K32GetWsChanges(long ptr long) kernel32.K32GetWsChanges
-# @ stub K32GetWsChangesEx
+@ stdcall K32GetWsChangesEx(long ptr ptr) kernel32.K32GetWsChangesEx
 @ stdcall K32InitializeProcessForWsWatch(long) kernel32.K32InitializeProcessForWsWatch
 @ stdcall K32QueryWorkingSet(long ptr long) kernel32.K32QueryWorkingSet
 @ stdcall K32QueryWorkingSetEx(long ptr long) kernel32.K32QueryWorkingSetEx
diff --git a/dlls/psapi/psapi.spec b/dlls/psapi/psapi.spec
index d6116f8c64..6a7bc14815 100644
--- a/dlls/psapi/psapi.spec
+++ b/dlls/psapi/psapi.spec
@@ -21,6 +21,7 @@
 @ stdcall GetProcessImageFileNameW(long ptr long) kernel32.K32GetProcessImageFileNameW
 @ stdcall GetProcessMemoryInfo(long ptr long) kernel32.K32GetProcessMemoryInfo
 @ stdcall GetWsChanges(long ptr long) kernel32.K32GetWsChanges
+@ stdcall GetWsChangesEx(long ptr ptr) kernel32.K32GetWsChangesEx
 @ stdcall InitializeProcessForWsWatch(long) kernel32.K32InitializeProcessForWsWatch
 @ stdcall QueryWorkingSet(long ptr long) kernel32.K32QueryWorkingSet
 @ stdcall QueryWorkingSetEx(long ptr long) kernel32.K32QueryWorkingSetEx
diff --git a/include/psapi.h b/include/psapi.h
index c7663f856d..742bf7b574 100644
--- a/include/psapi.h
+++ b/include/psapi.h
@@ -50,6 +50,12 @@ typedef struct _PSAPI_WS_WATCH_INFORMATION {
   LPVOID FaultingVa;
 } PSAPI_WS_WATCH_INFORMATION, *PPSAPI_WS_WATCH_INFORMATION;
 
+typedef struct _PSAPI_WS_WATCH_INFORMATION_EX {
+  PSAPI_WS_WATCH_INFORMATION BasicInfo;
+  ULONG_PTR FaultingThreadId;
+  ULONG_PTR Flags;
+} PSAPI_WS_WATCH_INFORMATION_EX, *PPSAPI_WS_WATCH_INFORMATION_EX;
+
 typedef struct _PERFORMANCE_INFORMATION {
     DWORD cb;
     SIZE_T CommitTotal;
@@ -128,6 +134,7 @@ BOOL  WINAPI QueryWorkingSet(HANDLE, PVOID, DWORD);
 BOOL  WINAPI QueryWorkingSetEx(HANDLE, PVOID, DWORD);
 BOOL  WINAPI InitializeProcessForWsWatch(HANDLE);
 BOOL  WINAPI GetWsChanges(HANDLE, PPSAPI_WS_WATCH_INFORMATION, DWORD);
+BOOL  WINAPI GetWsChangesEx(HANDLE, PSAPI_WS_WATCH_INFORMATION_EX*, DWORD*);
 DWORD WINAPI GetMappedFileNameW(HANDLE, LPVOID, LPWSTR, DWORD);
 DWORD WINAPI GetMappedFileNameA(HANDLE, LPVOID, LPSTR, DWORD);
 #define      GetMappedFileName WINELIB_NAME_AW(GetMappedFileName)
-- 
2.20.1




More information about the wine-devel mailing list