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