136 lines
5.4 KiB
C
136 lines
5.4 KiB
C
/**
|
|
* This file has no copyright assigned and is placed in the Public Domain.
|
|
* This file is part of the w64 mingw-runtime package.
|
|
* No warranty is given; refer to the file DISCLAIMER within this package.
|
|
*/
|
|
#ifndef _PSAPI_H_
|
|
#define _PSAPI_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifdef UNICODE
|
|
#define GetModuleBaseName GetModuleBaseNameW
|
|
#define GetModuleFileNameEx GetModuleFileNameExW
|
|
#define GetMappedFileName GetMappedFileNameW
|
|
#define GetDeviceDriverBaseName GetDeviceDriverBaseNameW
|
|
#define GetDeviceDriverFileName GetDeviceDriverFileNameW
|
|
#define PENUM_PAGE_FILE_CALLBACK PENUM_PAGE_FILE_CALLBACKW
|
|
#define EnumPageFiles EnumPageFilesW
|
|
#define GetProcessImageFileName GetProcessImageFileNameW
|
|
#else
|
|
#define GetModuleBaseName GetModuleBaseNameA
|
|
#define GetModuleFileNameEx GetModuleFileNameExA
|
|
#define GetMappedFileName GetMappedFileNameA
|
|
#define GetDeviceDriverBaseName GetDeviceDriverBaseNameA
|
|
#define GetDeviceDriverFileName GetDeviceDriverFileNameA
|
|
#define PENUM_PAGE_FILE_CALLBACK PENUM_PAGE_FILE_CALLBACKA
|
|
#define EnumPageFiles EnumPageFilesA
|
|
#define GetProcessImageFileName GetProcessImageFileNameA
|
|
#endif
|
|
|
|
WINBOOL WINAPI EnumProcesses(DWORD *lpidProcess,DWORD cb,DWORD *cbNeeded);
|
|
WINBOOL WINAPI EnumProcessModules(HANDLE hProcess,HMODULE *lphModule,DWORD cb,LPDWORD lpcbNeeded);
|
|
DWORD WINAPI GetModuleBaseNameA(HANDLE hProcess,HMODULE hModule,LPSTR lpBaseName,DWORD nSize);
|
|
DWORD WINAPI GetModuleBaseNameW(HANDLE hProcess,HMODULE hModule,LPWSTR lpBaseName,DWORD nSize);
|
|
DWORD WINAPI GetModuleFileNameExA(HANDLE hProcess,HMODULE hModule,LPSTR lpFilename,DWORD nSize);
|
|
DWORD WINAPI GetModuleFileNameExW(HANDLE hProcess,HMODULE hModule,LPWSTR lpFilename,DWORD nSize);
|
|
|
|
typedef struct _MODULEINFO {
|
|
LPVOID lpBaseOfDll;
|
|
DWORD SizeOfImage;
|
|
LPVOID EntryPoint;
|
|
} MODULEINFO,*LPMODULEINFO;
|
|
|
|
WINBOOL WINAPI GetModuleInformation(HANDLE hProcess,HMODULE hModule,LPMODULEINFO lpmodinfo,DWORD cb);
|
|
WINBOOL WINAPI EmptyWorkingSet(HANDLE hProcess);
|
|
WINBOOL WINAPI QueryWorkingSet(HANDLE hProcess,PVOID pv,DWORD cb);
|
|
WINBOOL WINAPI QueryWorkingSetEx(HANDLE hProcess,PVOID pv,DWORD cb);
|
|
WINBOOL WINAPI InitializeProcessForWsWatch(HANDLE hProcess);
|
|
|
|
typedef struct _PSAPI_WS_WATCH_INFORMATION {
|
|
LPVOID FaultingPc;
|
|
LPVOID FaultingVa;
|
|
} PSAPI_WS_WATCH_INFORMATION,*PPSAPI_WS_WATCH_INFORMATION;
|
|
|
|
WINBOOL WINAPI GetWsChanges(HANDLE hProcess,PPSAPI_WS_WATCH_INFORMATION lpWatchInfo,DWORD cb);
|
|
DWORD WINAPI GetMappedFileNameW(HANDLE hProcess,LPVOID lpv,LPWSTR lpFilename,DWORD nSize);
|
|
DWORD WINAPI GetMappedFileNameA(HANDLE hProcess,LPVOID lpv,LPSTR lpFilename,DWORD nSize);
|
|
WINBOOL WINAPI EnumDeviceDrivers(LPVOID *lpImageBase,DWORD cb,LPDWORD lpcbNeeded);
|
|
DWORD WINAPI GetDeviceDriverBaseNameA(LPVOID ImageBase,LPSTR lpBaseName,DWORD nSize);
|
|
DWORD WINAPI GetDeviceDriverBaseNameW(LPVOID ImageBase,LPWSTR lpBaseName,DWORD nSize);
|
|
DWORD WINAPI GetDeviceDriverFileNameA(LPVOID ImageBase,LPSTR lpFilename,DWORD nSize);
|
|
DWORD WINAPI GetDeviceDriverFileNameW(LPVOID ImageBase,LPWSTR lpFilename,DWORD nSize);
|
|
|
|
typedef struct _PROCESS_MEMORY_COUNTERS {
|
|
DWORD cb;
|
|
DWORD PageFaultCount;
|
|
SIZE_T PeakWorkingSetSize;
|
|
SIZE_T WorkingSetSize;
|
|
SIZE_T QuotaPeakPagedPoolUsage;
|
|
SIZE_T QuotaPagedPoolUsage;
|
|
SIZE_T QuotaPeakNonPagedPoolUsage;
|
|
SIZE_T QuotaNonPagedPoolUsage;
|
|
SIZE_T PagefileUsage;
|
|
SIZE_T PeakPagefileUsage;
|
|
} PROCESS_MEMORY_COUNTERS;
|
|
typedef PROCESS_MEMORY_COUNTERS *PPROCESS_MEMORY_COUNTERS;
|
|
|
|
typedef struct _PROCESS_MEMORY_COUNTERS_EX {
|
|
DWORD cb;
|
|
DWORD PageFaultCount;
|
|
SIZE_T PeakWorkingSetSize;
|
|
SIZE_T WorkingSetSize;
|
|
SIZE_T QuotaPeakPagedPoolUsage;
|
|
SIZE_T QuotaPagedPoolUsage;
|
|
SIZE_T QuotaPeakNonPagedPoolUsage;
|
|
SIZE_T QuotaNonPagedPoolUsage;
|
|
SIZE_T PagefileUsage;
|
|
SIZE_T PeakPagefileUsage;
|
|
SIZE_T PrivateUsage;
|
|
} PROCESS_MEMORY_COUNTERS_EX;
|
|
typedef PROCESS_MEMORY_COUNTERS_EX *PPROCESS_MEMORY_COUNTERS_EX;
|
|
|
|
WINBOOL WINAPI GetProcessMemoryInfo(HANDLE Process,PPROCESS_MEMORY_COUNTERS ppsmemCounters,DWORD cb);
|
|
|
|
typedef struct _PERFORMANCE_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;
|
|
} PERFORMANCE_INFORMATION,*PPERFORMANCE_INFORMATION,PERFORMACE_INFORMATION,*PPERFORMACE_INFORMATION;
|
|
|
|
WINBOOL WINAPI GetPerformanceInfo (PPERFORMACE_INFORMATION pPerformanceInformation,DWORD cb);
|
|
|
|
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 WINBOOL (*PENUM_PAGE_FILE_CALLBACKW) (LPVOID pContext,PENUM_PAGE_FILE_INFORMATION pPageFileInfo,LPCWSTR lpFilename);
|
|
typedef WINBOOL (*PENUM_PAGE_FILE_CALLBACKA) (LPVOID pContext,PENUM_PAGE_FILE_INFORMATION pPageFileInfo,LPCSTR lpFilename);
|
|
|
|
WINBOOL WINAPI EnumPageFilesW (PENUM_PAGE_FILE_CALLBACKW pCallBackRoutine,LPVOID pContext);
|
|
WINBOOL WINAPI EnumPageFilesA (PENUM_PAGE_FILE_CALLBACKA pCallBackRoutine,LPVOID pContext);
|
|
DWORD WINAPI GetProcessImageFileNameA(HANDLE hProcess,LPSTR lpImageFileName,DWORD nSize);
|
|
DWORD WINAPI GetProcessImageFileNameW(HANDLE hProcess,LPWSTR lpImageFileName,DWORD nSize);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|