diff --git a/include/psapi.h b/include/psapi.h
index 738e625..b125a46 100644
--- a/include/psapi.h
+++ b/include/psapi.h
@@ -48,4 +48,73 @@
   LPVOID FaultingVa;
 } PSAPI_WS_WATCH_INFORMATION, *PPSAPI_WS_WATCH_INFORMATION;
 
+typedef struct _PERFORMACE_INFORMATION {
+    DWORD cb;
+    SIZE_T CommitTotal;
+    SIZE_T CommitLimit;
+    SIZE_T CommitPeak;
+    SIZE_T PhysicalTotal;
+    SIZE_T PhysicalAvailable;
+    SIZE_T SystemCache;
+    SIZE_T KernelTotal;
+    SIZE_T KernelPaged;
+    SIZE_T KernelNonpaged;
+    SIZE_T PageSize;
+    DWORD HandleCount;
+    DWORD ProcessCount;
+    DWORD ThreadCount;
+} PERFORMACE_INFORMATION, *PPERFORMACE_INFORMATION;
+
+typedef struct _ENUM_PAGE_FILE_INFORMATION {
+    DWORD cb;
+    DWORD Reserved;
+    SIZE_T TotalSize;
+    SIZE_T TotalInUse;
+    SIZE_T PeakUsage;
+} ENUM_PAGE_FILE_INFORMATION, *PENUM_PAGE_FILE_INFORMATION;
+
+typedef BOOL (*PENUM_PAGE_FILE_CALLBACKA) (LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCSTR);
+typedef BOOL (*PENUM_PAGE_FILE_CALLBACKW) (LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCWSTR);
+#define PENUM_PAGE_FILE_CALLBACK WINELIB_NAME_AW(PENUM_PAGE_FILE_CALLBACK)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+BOOL  WINAPI EnumProcesses(DWORD*, DWORD, DWORD*);
+BOOL  WINAPI EnumProcessModules(HANDLE, HMODULE*, DWORD, LPDWORD);
+DWORD WINAPI GetModuleBaseNameA(HANDLE, HMODULE, LPSTR, DWORD);
+DWORD WINAPI GetModuleBaseNameW(HANDLE, HMODULE, LPWSTR, DWORD);
+#define      GetModuleBaseName WINELIB_NAME_AW(GetModuleBaseName)
+DWORD WINAPI GetModuleFileNameExA(HANDLE, HMODULE, LPSTR, DWORD);
+DWORD WINAPI GetModuleFileNameExW(HANDLE, HMODULE, LPWSTR, DWORD);
+#define      GetModuleFileName WINELIB_NAME_AW(GetModuleFileName)
+BOOL  WINAPI GetModuleInformation(HANDLE, HMODULE, LPMODULEINFO, DWORD);
+BOOL  WINAPI EmptyWorkingSet(HANDLE);
+BOOL  WINAPI QueryWorkingSet(HANDLE, PVOID, DWORD);
+BOOL  WINAPI InitializeProcessForWsWatch(HANDLE);
+BOOL  WINAPI GetWsChanges(HANDLE, PPSAPI_WS_WATCH_INFORMATION, DWORD);
+DWORD WINAPI GetMappedFileNameW(HANDLE, LPVOID, LPWSTR, DWORD);
+DWORD WINAPI GetMappedFileNameA(HANDLE, LPVOID, LPSTR, DWORD);
+#define      GetMappedFileName WINELIB_NAME_AW(GetMappedFileName)
+BOOL  WINAPI EnumDeviceDrivers(LPVOID*, DWORD, LPDWORD);
+DWORD WINAPI GetDeviceDriverBaseNameA(LPVOID, LPSTR, DWORD);
+DWORD WINAPI GetDeviceDriverBaseNameW(LPVOID, LPWSTR, DWORD);
+#define      GetDeviceDriverBaseName WINELIB_NAME_AW(GetDeviceDriverBaseName)
+DWORD WINAPI GetDeviceDriverFileNameA(LPVOID, LPSTR, DWORD);
+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 EnumPageFilesA(PENUM_PAGE_FILE_CALLBACKA, LPVOID);
+BOOL  WINAPI EnumPageFilesW(PENUM_PAGE_FILE_CALLBACKW, LPVOID);
+#define EnumPageFiles WINELIB_NAME_AW(EnumPageFiles)
+DWORD WINAPI GetProcessImageFileNameA(HANDLE, LPSTR, DWORD);
+DWORD WINAPI GetProcessImageFileNameW(HANDLE, LPWSTR, DWORD);
+#define      GetProcessImageFileName WINELIB_NAME_AW(GetProcessImageFileName)
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif  /* __WINE_PSAPI_H */
