diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c
index c714564..e32a62a 100644
--- a/dlls/ntdll/virtual.c
+++ b/dlls/ntdll/virtual.c
@@ -1449,7 +1449,12 @@
     UINT size = 0;
     MEMORY_BASIC_INFORMATION *info = buffer;
 
-    if (info_class != MemoryBasicInformation) return STATUS_INVALID_INFO_CLASS;
+    if (info_class != MemoryBasicInformation)
+    {
+        FIXME("(%p, %p, %ld, %p, %ld, %p) Unimplemented information class\n", process, addr,
+              info_class, buffer, len, res_len);
+        return STATUS_INVALID_INFO_CLASS;
+    }
     if (ADDRESS_SPACE_LIMIT && addr >= ADDRESS_SPACE_LIMIT)
         return STATUS_WORKING_SET_LIMIT_RANGE;
 
diff --git a/dlls/psapi/psapi.spec b/dlls/psapi/psapi.spec
index 2bedfef..a7066af 100644
--- a/dlls/psapi/psapi.spec
+++ b/dlls/psapi/psapi.spec
@@ -1,7 +1,7 @@
 @ stdcall EmptyWorkingSet(long)
 @ stdcall EnumDeviceDrivers(ptr long ptr)
-@ stub    EnumPageFilesA
-@ stub    EnumPageFilesW
+@ stdcall EnumPageFilesA(ptr ptr)
+@ stdcall EnumPageFilesW(ptr ptr)
 @ stdcall EnumProcessModules(long ptr long ptr)
 @ stdcall EnumProcesses(ptr long ptr)
 @ stdcall GetDeviceDriverBaseNameA(ptr str long)
@@ -15,10 +15,11 @@
 @ stdcall GetModuleFileNameExA(long long str long)
 @ stdcall GetModuleFileNameExW(long long wstr long)
 @ stdcall GetModuleInformation(long long ptr long)
-@ stub    GetPerformanceInfo
-@ stub    GetProcessImageFileNameA
-@ stub    GetProcessImageFileNameW
+@ stdcall GetPerformanceInfo(ptr long)
+@ stdcall GetProcessImageFileNameA(long ptr long)
+@ stdcall GetProcessImageFileNameW(long ptr long)
 @ stdcall GetProcessMemoryInfo(long ptr long)
 @ stdcall GetWsChanges(long ptr long)
 @ stdcall InitializeProcessForWsWatch(long)
 @ stdcall QueryWorkingSet(long ptr long)
+@ stdcall QueryWorkingSetEx(long ptr long)
diff --git a/dlls/psapi/psapi_main.c b/dlls/psapi/psapi_main.c
index c61770e..bd1c73b 100644
--- a/dlls/psapi/psapi_main.c
+++ b/dlls/psapi/psapi_main.c
@@ -28,6 +28,7 @@
 #include "wine/unicode.h"
 #include "wine/debug.h"
 #include "winnls.h"
+#include "ntstatus.h"
 #include "psapi.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(psapi);
@@ -53,6 +54,23 @@
     return TRUE;
 }
 
+/***********************************************************************
+ *           EnumPageFilesA (PSAPI.@)
+ */
+BOOL WINAPI EnumPageFilesA( PENUM_PAGE_FILE_CALLBACKA callback, LPVOID context )
+{
+    FIXME("(%p, %p) stub\n", callback, context );
+    return FALSE;
+}
+
+/***********************************************************************
+ *           EnumPageFilesW (PSAPI.@)
+ */
+BOOL WINAPI EnumPageFilesW( PENUM_PAGE_FILE_CALLBACKW callback, LPVOID context )
+{
+    FIXME("(%p, %p) stub\n", callback, context );
+    return FALSE;
+}
 
 /***********************************************************************
  *           EnumProcesses (PSAPI.@)
@@ -443,15 +461,75 @@
 }
 
 /***********************************************************************
- *           GetProcessMemoryInfo (PSAPI.@)
+ *           GetPerformanceInfo (PSAPI.@)
  */
-BOOL WINAPI GetProcessMemoryInfo(HANDLE Process, 
-                                 PPROCESS_MEMORY_COUNTERS ppsmemCounters, DWORD cb)
+BOOL WINAPI GetPerformanceInfo( PPERFORMANCE_INFORMATION info, DWORD size )
 {
-    FIXME("(hProcess=%p, %p, %ld): stub\n",
-          Process, ppsmemCounters, cb);
-    
-    memset(ppsmemCounters, 0, cb);
+    NTSTATUS status;
+
+    TRACE( "(%p, %ld)\n", info, size );
+
+    status = NtQueryInformationProcess( GetCurrentProcess(), SystemPerformanceInformation, info, size, NULL );
+
+    if (status)
+    {
+        SetLastError( RtlNtStatusToDosError( status ) );
+        return FALSE;
+    }
+    return TRUE;
+}
+
+/***********************************************************************
+ *           GetProcessImageFileNameA (PSAPI.@)
+ */
+DWORD WINAPI GetProcessImageFileNameA( HANDLE process, LPSTR file, DWORD size )
+{
+    FIXME("(%p, %p, %ld) stub\n", process, file, size );
+    return 0;
+}
+
+/***********************************************************************
+ *           GetProcessImageFileNameW (PSAPI.@)
+ */
+DWORD WINAPI GetProcessImageFileNameW( HANDLE process, LPWSTR file, DWORD size )
+{
+    FIXME("(%p, %p, %ld) stub\n", process, file, size );
+    return 0;
+}
+
+/***********************************************************************
+ *           GetProcessMemoryInfo (PSAPI.@)
+ *
+ * Retrieve memory usage information for a given process
+ *
+ */
+BOOL WINAPI GetProcessMemoryInfo( HANDLE process, PPROCESS_MEMORY_COUNTERS counters, DWORD size )
+{
+    NTSTATUS status;
+    VM_COUNTERS vmc;
+
+    TRACE( "(%p, %p, %ld)\n", process, counters, size );
+
+    status = NtQueryInformationProcess( process, ProcessVmCounters, &vmc, sizeof(vmc), NULL );
+
+    if (status)
+    {
+        SetLastError( RtlNtStatusToDosError( status ) );
+        return FALSE;
+    }
+
+    /* FIXME: check size */
+
+    counters->cb = sizeof(PROCESS_MEMORY_COUNTERS);
+    counters->PageFaultCount = vmc.PageFaultCount;
+    counters->PeakWorkingSetSize = vmc.PeakWorkingSetSize;
+    counters->WorkingSetSize = vmc.WorkingSetSize;
+    counters->QuotaPeakPagedPoolUsage = vmc.QuotaPeakPagedPoolUsage;
+    counters->QuotaPagedPoolUsage = vmc.QuotaPagedPoolUsage;
+    counters->QuotaPeakNonPagedPoolUsage = vmc.QuotaPeakNonPagedPoolUsage;
+    counters->QuotaNonPagedPoolUsage = vmc.QuotaNonPagedPoolUsage;
+    counters->PagefileUsage = vmc.PagefileUsage;
+    counters->PeakPagefileUsage = vmc.PeakPagefileUsage;
 
     return TRUE;
 }
@@ -459,14 +537,19 @@
 /***********************************************************************
  *           GetWsChanges (PSAPI.@)
  */
-BOOL WINAPI GetWsChanges(HANDLE hProcess, 
-                         PPSAPI_WS_WATCH_INFORMATION lpWatchInfo, DWORD cb)
+BOOL WINAPI GetWsChanges( HANDLE process, PPSAPI_WS_WATCH_INFORMATION watchinfo, DWORD size )
 {
-    FIXME("(hProcess=%p, %p, %ld): stub\n",
-          hProcess, lpWatchInfo, cb);
+    NTSTATUS status;
 
-    memset(lpWatchInfo, 0, cb);
+    TRACE( "(%p, %p, %ld)\n", process, watchinfo, size );
 
+    status = NtQueryVirtualMemory( process, NULL, ProcessWorkingSetWatch, watchinfo, size, NULL );
+
+    if (status)
+    {
+        SetLastError( RtlNtStatusToDosError( status ) );
+        return FALSE;
+    }
     return TRUE;
 }
 
@@ -483,12 +566,37 @@
 /***********************************************************************
  *           QueryWorkingSet (PSAPI.@)
  */
-BOOL WINAPI QueryWorkingSet(HANDLE hProcess, LPVOID pv, DWORD cb)
+BOOL WINAPI QueryWorkingSet( HANDLE process, LPVOID buffer, DWORD size )
 {
-    FIXME("(hProcess=%p, %p, %ld)\n", hProcess, pv, cb);
+    NTSTATUS status;
 
-    if (pv && cb)
-        ((DWORD *) pv)[0] = 0; /* Empty WorkingSet */
+    TRACE( "(%p, %p, %ld)\n", process, buffer, size );
 
+    status = NtQueryVirtualMemory( process, NULL, MemoryWorkingSetList, buffer, size, NULL );
+
+    if (status)
+    {
+        SetLastError( RtlNtStatusToDosError( status ) );
+        return FALSE;
+    }
+    return TRUE;
+}
+
+/***********************************************************************
+ *           QueryWorkingSetEx (PSAPI.@)
+ */
+BOOL WINAPI QueryWorkingSetEx( HANDLE process, LPVOID buffer, DWORD size )
+{
+    NTSTATUS status;
+
+    TRACE( "(%p, %p, %ld)\n", process, buffer, size );
+
+    status = NtQueryVirtualMemory( process, NULL, MemoryWorkingSetList, buffer,  size, NULL );
+
+    if (status)
+    {
+        SetLastError( RtlNtStatusToDosError( status ) );
+        return FALSE;
+    }
     return TRUE;
 }
diff --git a/include/psapi.h b/include/psapi.h
index 0a1ecc5..0c1dbd0 100644
--- a/include/psapi.h
+++ b/include/psapi.h
@@ -46,7 +46,7 @@
   LPVOID FaultingVa;
 } PSAPI_WS_WATCH_INFORMATION, *PPSAPI_WS_WATCH_INFORMATION;
 
-typedef struct _PERFORMACE_INFORMATION {
+typedef struct _PERFORMANCE_INFORMATION {
     DWORD cb;
     SIZE_T CommitTotal;
     SIZE_T CommitLimit;
@@ -61,7 +61,7 @@
     DWORD HandleCount;
     DWORD ProcessCount;
     DWORD ThreadCount;
-} PERFORMACE_INFORMATION, *PPERFORMACE_INFORMATION;
+} PERFORMANCE_INFORMATION, *PPERFORMANCE_INFORMATION;
 
 typedef struct _ENUM_PAGE_FILE_INFORMATION {
     DWORD cb;
@@ -90,6 +90,7 @@
 BOOL  WINAPI GetModuleInformation(HANDLE, HMODULE, LPMODULEINFO, DWORD);
 BOOL  WINAPI EmptyWorkingSet(HANDLE);
 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);
 DWORD WINAPI GetMappedFileNameW(HANDLE, LPVOID, LPWSTR, DWORD);
@@ -103,7 +104,7 @@
 DWORD WINAPI GetDeviceDriverFileNameW(LPVOID, LPWSTR, DWORD);
 #define      GetDeviceDriverFileName WINELIB_NAME_AW(GetDeviceDriverFileName)
 BOOL  WINAPI GetProcessMemoryInfo(HANDLE, PPROCESS_MEMORY_COUNTERS, DWORD);
-BOOL  WINAPI GetPerformanceInfo(PPERFORMACE_INFORMATION, DWORD);
+BOOL  WINAPI GetPerformanceInfo(PPERFORMANCE_INFORMATION, DWORD);
 BOOL  WINAPI EnumPageFilesA(PENUM_PAGE_FILE_CALLBACKA, LPVOID);
 BOOL  WINAPI EnumPageFilesW(PENUM_PAGE_FILE_CALLBACKW, LPVOID);
 #define EnumPageFiles WINELIB_NAME_AW(EnumPageFiles)
diff --git a/include/winternl.h b/include/winternl.h
index 16e18a8..0ce1223 100644
--- a/include/winternl.h
+++ b/include/winternl.h
@@ -617,9 +617,11 @@
     WinStationInformation = 8
 } WINSTATIONINFOCLASS;
 
-typedef enum
-{
-    MemoryBasicInformation = 0
+typedef enum _MEMORY_INFORMATION_CLASS {
+    MemoryBasicInformation,
+    MemoryWorkingSetList,
+    MemorySectionName,
+    MemoryBasicVlmInformation
 } MEMORY_INFORMATION_CLASS;
 
 typedef enum _MUTANT_INFORMATION_CLASS
