Jacek Caban : kernel32: Moved GetProcessMemoryInfo implementation to kernel32.

Alexandre Julliard julliard at winehq.org
Thu May 12 13:57:50 CDT 2011


Module: wine
Branch: master
Commit: 4ed94f7939a21c77bc565d0f697b1cd9aa8b4a74
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4ed94f7939a21c77bc565d0f697b1cd9aa8b4a74

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu May 12 12:19:40 2011 +0000

kernel32: Moved GetProcessMemoryInfo implementation to kernel32.

---

 dlls/kernel32/kernel32.spec |    1 +
 dlls/kernel32/process.c     |   42 ++++++++++++++++++++++++++++++++++++++++++
 dlls/psapi/psapi.spec       |    2 +-
 dlls/psapi/psapi_main.c     |   41 -----------------------------------------
 4 files changed, 44 insertions(+), 42 deletions(-)

diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index a4e45d6..458b425 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -772,6 +772,7 @@
 @ stdcall K32GetProcessImageFileNameW(long ptr long)
 @ stdcall K32EnumProcessModules(long ptr long ptr)
 @ stdcall K32EnumProcesses(ptr long ptr)
+@ stdcall K32GetProcessMemoryInfo(long ptr long)
 @ stdcall K32QueryWorkingSet(long ptr long)
 @ stdcall K32QueryWorkingSetEx(long ptr long)
 @ stdcall -i386 -private -register K32Thk1632Epilog() krnl386.exe16.K32Thk1632Epilog
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 5436c06..2ec5905 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -46,6 +46,7 @@
 #define WIN32_NO_STATUS
 #include "winternl.h"
 #include "kernel_private.h"
+#include "psapi.h"
 #include "wine/library.h"
 #include "wine/server.h"
 #include "wine/unicode.h"
@@ -3622,6 +3623,47 @@ BOOL WINAPI K32QueryWorkingSetEx( HANDLE process, LPVOID buffer, DWORD size )
 }
 
 /***********************************************************************
+ *           K32GetProcessMemoryInfo (KERNEL32.@)
+ *
+ * Retrieve memory usage information for a given process
+ *
+ */
+BOOL WINAPI K32GetProcessMemoryInfo(HANDLE process,
+                                    PPROCESS_MEMORY_COUNTERS pmc, DWORD cb)
+{
+    NTSTATUS status;
+    VM_COUNTERS vmc;
+
+    if (cb < sizeof(PROCESS_MEMORY_COUNTERS))
+    {
+        SetLastError(ERROR_INSUFFICIENT_BUFFER);
+        return FALSE;
+    }
+
+    status = NtQueryInformationProcess(process, ProcessVmCounters,
+                                       &vmc, sizeof(vmc), NULL);
+
+    if (status)
+    {
+        SetLastError(RtlNtStatusToDosError(status));
+        return FALSE;
+    }
+
+    pmc->cb = sizeof(PROCESS_MEMORY_COUNTERS);
+    pmc->PageFaultCount = vmc.PageFaultCount;
+    pmc->PeakWorkingSetSize = vmc.PeakWorkingSetSize;
+    pmc->WorkingSetSize = vmc.WorkingSetSize;
+    pmc->QuotaPeakPagedPoolUsage = vmc.QuotaPeakPagedPoolUsage;
+    pmc->QuotaPagedPoolUsage = vmc.QuotaPagedPoolUsage;
+    pmc->QuotaPeakNonPagedPoolUsage = vmc.QuotaPeakNonPagedPoolUsage;
+    pmc->QuotaNonPagedPoolUsage = vmc.QuotaNonPagedPoolUsage;
+    pmc->PagefileUsage = vmc.PagefileUsage;
+    pmc->PeakPagefileUsage = vmc.PeakPagefileUsage;
+
+    return TRUE;
+}
+
+/***********************************************************************
  * ProcessIdToSessionId   (KERNEL32.@)
  * This function is available on Terminal Server 4SP4 and Windows 2000
  */
diff --git a/dlls/psapi/psapi.spec b/dlls/psapi/psapi.spec
index 37d6e80..ad03716 100644
--- a/dlls/psapi/psapi.spec
+++ b/dlls/psapi/psapi.spec
@@ -18,7 +18,7 @@
 @ stdcall GetPerformanceInfo(ptr long)
 @ stdcall GetProcessImageFileNameA(long ptr long) kernel32.K32GetProcessImageFileNameA
 @ stdcall GetProcessImageFileNameW(long ptr long) kernel32.K32GetProcessImageFileNameW
-@ stdcall GetProcessMemoryInfo(long ptr long)
+@ stdcall GetProcessMemoryInfo(long ptr long) kernel32.K32GetProcessMemoryInfo
 @ stdcall GetWsChanges(long ptr long)
 @ stdcall InitializeProcessForWsWatch(long)
 @ stdcall QueryWorkingSet(long ptr long) kernel32.K32QueryWorkingSet
diff --git a/dlls/psapi/psapi_main.c b/dlls/psapi/psapi_main.c
index 909e7ce..0b8e5b0 100644
--- a/dlls/psapi/psapi_main.c
+++ b/dlls/psapi/psapi_main.c
@@ -407,47 +407,6 @@ BOOL WINAPI GetPerformanceInfo( PPERFORMANCE_INFORMATION info, DWORD size )
 }
 
 /***********************************************************************
- *           GetProcessMemoryInfo (PSAPI.@)
- *
- * Retrieve memory usage information for a given process
- *
- */
-BOOL WINAPI GetProcessMemoryInfo(HANDLE hProcess, 
-                                 PPROCESS_MEMORY_COUNTERS pmc, DWORD cb)
-{
-    NTSTATUS status;
-    VM_COUNTERS vmc;
-
-    if (cb < sizeof(PROCESS_MEMORY_COUNTERS))
-    {
-        SetLastError(ERROR_INSUFFICIENT_BUFFER);
-        return FALSE;
-    }
-
-    status = NtQueryInformationProcess(hProcess, ProcessVmCounters, 
-                                       &vmc, sizeof(vmc), NULL);
-
-    if (status)
-    {
-        SetLastError(RtlNtStatusToDosError(status));
-        return FALSE;
-    }
-
-    pmc->cb = sizeof(PROCESS_MEMORY_COUNTERS);
-    pmc->PageFaultCount = vmc.PageFaultCount;
-    pmc->PeakWorkingSetSize = vmc.PeakWorkingSetSize;
-    pmc->WorkingSetSize = vmc.WorkingSetSize;
-    pmc->QuotaPeakPagedPoolUsage = vmc.QuotaPeakPagedPoolUsage;
-    pmc->QuotaPagedPoolUsage = vmc.QuotaPagedPoolUsage;
-    pmc->QuotaPeakNonPagedPoolUsage = vmc.QuotaPeakNonPagedPoolUsage;
-    pmc->QuotaNonPagedPoolUsage = vmc.QuotaNonPagedPoolUsage;
-    pmc->PagefileUsage = vmc.PagefileUsage;
-    pmc->PeakPagefileUsage = vmc.PeakPagefileUsage;
-
-    return TRUE;
-}
-
-/***********************************************************************
  *           GetWsChanges (PSAPI.@)
  */
 BOOL WINAPI GetWsChanges( HANDLE process, PPSAPI_WS_WATCH_INFORMATION watchinfo, DWORD size )




More information about the wine-cvs mailing list