psapi.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. /*
  2. * Declarations for PSAPI
  3. *
  4. * Copyright (C) 1998 Patrik Stridvall
  5. *
  6. * This library is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU Lesser General Public
  8. * License as published by the Free Software Foundation; either
  9. * version 2.1 of the License, or (at your option) any later version.
  10. *
  11. * This library is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public
  17. * License along with this library; if not, write to the Free Software
  18. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  19. */
  20. #ifndef __WINE_PSAPI_H
  21. #define __WINE_PSAPI_H
  22. typedef struct _MODULEINFO {
  23. LPVOID lpBaseOfDll;
  24. DWORD SizeOfImage;
  25. LPVOID EntryPoint;
  26. } MODULEINFO, *LPMODULEINFO;
  27. typedef struct _PROCESS_MEMORY_COUNTERS {
  28. DWORD cb;
  29. DWORD PageFaultCount;
  30. DWORD PeakWorkingSetSize;
  31. DWORD WorkingSetSize;
  32. DWORD QuotaPeakPagedPoolUsage;
  33. DWORD QuotaPagedPoolUsage;
  34. DWORD QuotaPeakNonPagedPoolUsage;
  35. DWORD QuotaNonPagedPoolUsage;
  36. DWORD PagefileUsage;
  37. DWORD PeakPagefileUsage;
  38. } PROCESS_MEMORY_COUNTERS;
  39. typedef PROCESS_MEMORY_COUNTERS *PPROCESS_MEMORY_COUNTERS;
  40. typedef struct _PSAPI_WS_WATCH_INFORMATION {
  41. LPVOID FaultingPc;
  42. LPVOID FaultingVa;
  43. } PSAPI_WS_WATCH_INFORMATION, *PPSAPI_WS_WATCH_INFORMATION;
  44. typedef struct _PERFORMANCE_INFORMATION {
  45. DWORD cb;
  46. SIZE_T CommitTotal;
  47. SIZE_T CommitLimit;
  48. SIZE_T CommitPeak;
  49. SIZE_T PhysicalTotal;
  50. SIZE_T PhysicalAvailable;
  51. SIZE_T SystemCache;
  52. SIZE_T KernelTotal;
  53. SIZE_T KernelPaged;
  54. SIZE_T KernelNonpaged;
  55. SIZE_T PageSize;
  56. DWORD HandleCount;
  57. DWORD ProcessCount;
  58. DWORD ThreadCount;
  59. } PERFORMANCE_INFORMATION, *PPERFORMANCE_INFORMATION;
  60. typedef struct _ENUM_PAGE_FILE_INFORMATION {
  61. DWORD cb;
  62. DWORD Reserved;
  63. SIZE_T TotalSize;
  64. SIZE_T TotalInUse;
  65. SIZE_T PeakUsage;
  66. } ENUM_PAGE_FILE_INFORMATION, *PENUM_PAGE_FILE_INFORMATION;
  67. typedef BOOL (*PENUM_PAGE_FILE_CALLBACKA) (LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCSTR);
  68. typedef BOOL (*PENUM_PAGE_FILE_CALLBACKW) (LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCWSTR);
  69. #define PENUM_PAGE_FILE_CALLBACK WINELIB_NAME_AW(PENUM_PAGE_FILE_CALLBACK)
  70. #ifdef __cplusplus
  71. extern "C" {
  72. #endif
  73. BOOL WINAPI EnumProcesses(DWORD*, DWORD, DWORD*);
  74. BOOL WINAPI EnumProcessModules(HANDLE, HMODULE*, DWORD, LPDWORD);
  75. DWORD WINAPI GetModuleBaseNameA(HANDLE, HMODULE, LPSTR, DWORD);
  76. DWORD WINAPI GetModuleBaseNameW(HANDLE, HMODULE, LPWSTR, DWORD);
  77. #define GetModuleBaseName WINELIB_NAME_AW(GetModuleBaseName)
  78. DWORD WINAPI GetModuleFileNameExA(HANDLE, HMODULE, LPSTR, DWORD);
  79. DWORD WINAPI GetModuleFileNameExW(HANDLE, HMODULE, LPWSTR, DWORD);
  80. #define GetModuleFileName WINELIB_NAME_AW(GetModuleFileName)
  81. BOOL WINAPI GetModuleInformation(HANDLE, HMODULE, LPMODULEINFO, DWORD);
  82. BOOL WINAPI EmptyWorkingSet(HANDLE);
  83. BOOL WINAPI QueryWorkingSet(HANDLE, PVOID, DWORD);
  84. BOOL WINAPI QueryWorkingSetEx(HANDLE, PVOID, DWORD);
  85. BOOL WINAPI InitializeProcessForWsWatch(HANDLE);
  86. BOOL WINAPI GetWsChanges(HANDLE, PPSAPI_WS_WATCH_INFORMATION, DWORD);
  87. DWORD WINAPI GetMappedFileNameW(HANDLE, LPVOID, LPWSTR, DWORD);
  88. DWORD WINAPI GetMappedFileNameA(HANDLE, LPVOID, LPSTR, DWORD);
  89. #define GetMappedFileName WINELIB_NAME_AW(GetMappedFileName)
  90. BOOL WINAPI EnumDeviceDrivers(LPVOID*, DWORD, LPDWORD);
  91. DWORD WINAPI GetDeviceDriverBaseNameA(LPVOID, LPSTR, DWORD);
  92. DWORD WINAPI GetDeviceDriverBaseNameW(LPVOID, LPWSTR, DWORD);
  93. #define GetDeviceDriverBaseName WINELIB_NAME_AW(GetDeviceDriverBaseName)
  94. DWORD WINAPI GetDeviceDriverFileNameA(LPVOID, LPSTR, DWORD);
  95. DWORD WINAPI GetDeviceDriverFileNameW(LPVOID, LPWSTR, DWORD);
  96. #define GetDeviceDriverFileName WINELIB_NAME_AW(GetDeviceDriverFileName)
  97. BOOL WINAPI GetProcessMemoryInfo(HANDLE, PPROCESS_MEMORY_COUNTERS, DWORD);
  98. BOOL WINAPI GetPerformanceInfo(PPERFORMANCE_INFORMATION, DWORD);
  99. BOOL WINAPI EnumPageFilesA(PENUM_PAGE_FILE_CALLBACKA, LPVOID);
  100. BOOL WINAPI EnumPageFilesW(PENUM_PAGE_FILE_CALLBACKW, LPVOID);
  101. #define EnumPageFiles WINELIB_NAME_AW(EnumPageFiles)
  102. DWORD WINAPI GetProcessImageFileNameA(HANDLE, LPSTR, DWORD);
  103. DWORD WINAPI GetProcessImageFileNameW(HANDLE, LPWSTR, DWORD);
  104. #define GetProcessImageFileName WINELIB_NAME_AW(GetProcessImageFileName)
  105. #ifdef __cplusplus
  106. }
  107. #endif
  108. #endif /* __WINE_PSAPI_H */