Psapi.h
上传用户:tzh4061
上传日期:2007-01-08
资源大小:309k
文件大小:4k
源码类别:

钩子与API截获

开发平台:

Visual C++

  1. /*++ BUILD Version: 0001    // Increment this if a change has global effects
  2. Copyright (c) 1994-1999  Microsoft Corporation
  3. Module Name:
  4.     psapi.h
  5. Abstract:
  6.     Include file for APIs provided by PSAPI.DLL
  7. Author:
  8.     Richard Shupak   [richards]  06-Jan-1994
  9. Revision History:
  10. --*/
  11. #ifndef _PSAPI_H_
  12. #define _PSAPI_H_
  13. #if _MSC_VER > 1000
  14. #pragma once
  15. #endif
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. BOOL
  20. WINAPI
  21. EnumProcesses(
  22.     DWORD * lpidProcess,
  23.     DWORD   cb,
  24.     DWORD * cbNeeded
  25.     );
  26. BOOL
  27. WINAPI
  28. EnumProcessModules(
  29.     HANDLE hProcess,
  30.     HMODULE *lphModule,
  31.     DWORD cb,
  32.     LPDWORD lpcbNeeded
  33.     );
  34. DWORD
  35. WINAPI
  36. GetModuleBaseNameA(
  37.     HANDLE hProcess,
  38.     HMODULE hModule,
  39.     LPSTR lpBaseName,
  40.     DWORD nSize
  41.     );
  42. DWORD
  43. WINAPI
  44. GetModuleBaseNameW(
  45.     HANDLE hProcess,
  46.     HMODULE hModule,
  47.     LPWSTR lpBaseName,
  48.     DWORD nSize
  49.     );
  50. #ifdef UNICODE
  51. #define GetModuleBaseName  GetModuleBaseNameW
  52. #else
  53. #define GetModuleBaseName  GetModuleBaseNameA
  54. #endif // !UNICODE
  55. DWORD
  56. WINAPI
  57. GetModuleFileNameExA(
  58.     HANDLE hProcess,
  59.     HMODULE hModule,
  60.     LPSTR lpFilename,
  61.     DWORD nSize
  62.     );
  63. DWORD
  64. WINAPI
  65. GetModuleFileNameExW(
  66.     HANDLE hProcess,
  67.     HMODULE hModule,
  68.     LPWSTR lpFilename,
  69.     DWORD nSize
  70.     );
  71. #ifdef UNICODE
  72. #define GetModuleFileNameEx  GetModuleFileNameExW
  73. #else
  74. #define GetModuleFileNameEx  GetModuleFileNameExA
  75. #endif // !UNICODE
  76. typedef struct _MODULEINFO {
  77.     LPVOID lpBaseOfDll;
  78.     DWORD SizeOfImage;
  79.     LPVOID EntryPoint;
  80. } MODULEINFO, *LPMODULEINFO;
  81. BOOL
  82. WINAPI
  83. GetModuleInformation(
  84.     HANDLE hProcess,
  85.     HMODULE hModule,
  86.     LPMODULEINFO lpmodinfo,
  87.     DWORD cb
  88.     );
  89. BOOL
  90. WINAPI
  91. EmptyWorkingSet(
  92.     HANDLE hProcess
  93.     );
  94. BOOL
  95. WINAPI
  96. QueryWorkingSet(
  97.     HANDLE hProcess,
  98.     PVOID pv,
  99.     DWORD cb
  100.     );
  101. BOOL
  102. WINAPI
  103. InitializeProcessForWsWatch(
  104.     HANDLE hProcess
  105.     );
  106. typedef struct _PSAPI_WS_WATCH_INFORMATION {
  107.     LPVOID FaultingPc;
  108.     LPVOID FaultingVa;
  109. } PSAPI_WS_WATCH_INFORMATION, *PPSAPI_WS_WATCH_INFORMATION;
  110. BOOL
  111. WINAPI
  112. GetWsChanges(
  113.     HANDLE hProcess,
  114.     PPSAPI_WS_WATCH_INFORMATION lpWatchInfo,
  115.     DWORD cb
  116.     );
  117. DWORD
  118. WINAPI
  119. GetMappedFileNameW(
  120.     HANDLE hProcess,
  121.     LPVOID lpv,
  122.     LPWSTR lpFilename,
  123.     DWORD nSize
  124.     );
  125. DWORD
  126. WINAPI
  127. GetMappedFileNameA(
  128.     HANDLE hProcess,
  129.     LPVOID lpv,
  130.     LPSTR lpFilename,
  131.     DWORD nSize
  132.     );
  133. #ifdef UNICODE
  134. #define GetMappedFileName  GetMappedFileNameW
  135. #else
  136. #define GetMappedFileName  GetMappedFileNameA
  137. #endif // !UNICODE
  138. BOOL
  139. WINAPI
  140. EnumDeviceDrivers(
  141.     LPVOID *lpImageBase,
  142.     DWORD cb,
  143.     LPDWORD lpcbNeeded
  144.     );
  145. DWORD
  146. WINAPI
  147. GetDeviceDriverBaseNameA(
  148.     LPVOID ImageBase,
  149.     LPSTR lpBaseName,
  150.     DWORD nSize
  151.     );
  152. DWORD
  153. WINAPI
  154. GetDeviceDriverBaseNameW(
  155.     LPVOID ImageBase,
  156.     LPWSTR lpBaseName,
  157.     DWORD nSize
  158.     );
  159. #ifdef UNICODE
  160. #define GetDeviceDriverBaseName  GetDeviceDriverBaseNameW
  161. #else
  162. #define GetDeviceDriverBaseName  GetDeviceDriverBaseNameA
  163. #endif // !UNICODE
  164. DWORD
  165. WINAPI
  166. GetDeviceDriverFileNameA(
  167.     LPVOID ImageBase,
  168.     LPSTR lpFilename,
  169.     DWORD nSize
  170.     );
  171. DWORD
  172. WINAPI
  173. GetDeviceDriverFileNameW(
  174.     LPVOID ImageBase,
  175.     LPWSTR lpFilename,
  176.     DWORD nSize
  177.     );
  178. #ifdef UNICODE
  179. #define GetDeviceDriverFileName  GetDeviceDriverFileNameW
  180. #else
  181. #define GetDeviceDriverFileName  GetDeviceDriverFileNameA
  182. #endif // !UNICODE
  183. // Structure for GetProcessMemoryInfo()
  184. typedef struct _PROCESS_MEMORY_COUNTERS {
  185.     DWORD cb;
  186.     DWORD PageFaultCount;
  187.     SIZE_T PeakWorkingSetSize;
  188.     SIZE_T WorkingSetSize;
  189.     SIZE_T QuotaPeakPagedPoolUsage;
  190.     SIZE_T QuotaPagedPoolUsage;
  191.     SIZE_T QuotaPeakNonPagedPoolUsage;
  192.     SIZE_T QuotaNonPagedPoolUsage;
  193.     SIZE_T PagefileUsage;
  194.     SIZE_T PeakPagefileUsage;
  195. } PROCESS_MEMORY_COUNTERS;
  196. typedef PROCESS_MEMORY_COUNTERS *PPROCESS_MEMORY_COUNTERS;
  197. BOOL
  198. WINAPI
  199. GetProcessMemoryInfo(
  200.     HANDLE Process,
  201.     PPROCESS_MEMORY_COUNTERS ppsmemCounters,
  202.     DWORD cb
  203.     );
  204. #ifdef __cplusplus
  205. }
  206. #endif
  207. #endif