123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- /**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
- */
- #ifndef _PSAPI_H_
- #define _PSAPI_H_
- #include <_mingw_unicode.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- #ifndef PSAPI_VERSION
- #if NTDDI_VERSION >= NTDDI_WIN7
- #define PSAPI_VERSION 2
- #else
- #define PSAPI_VERSION 1
- #endif
- #endif
- #if PSAPI_VERSION > 1
- #define EnumProcesses K32EnumProcesses
- #define EnumProcessModules K32EnumProcessModules
- #define EnumProcessModulesEx K32EnumProcessModulesEx
- #define GetModuleBaseNameA K32GetModuleBaseNameA
- #define GetModuleBaseNameW K32GetModuleBaseNameW
- #define GetModuleFileNameExA K32GetModuleFileNameExA
- #define GetModuleFileNameExW K32GetModuleFileNameExW
- #define GetModuleInformation K32GetModuleInformation
- #define EmptyWorkingSet K32EmptyWorkingSet
- #define QueryWorkingSet K32QueryWorkingSet
- #define QueryWorkingSetEx K32QueryWorkingSetEx
- #define InitializeProcessForWsWatch K32InitializeProcessForWsWatch
- #define GetWsChanges K32GetWsChanges
- #define GetWsChangesEx K32GetWsChangesEx
- #define GetMappedFileNameW K32GetMappedFileNameW
- #define GetMappedFileNameA K32GetMappedFileNameA
- #define EnumDeviceDrivers K32EnumDeviceDrivers
- #define GetDeviceDriverBaseNameA K32GetDeviceDriverBaseNameA
- #define GetDeviceDriverBaseNameW K32GetDeviceDriverBaseNameW
- #define GetDeviceDriverFileNameA K32GetDeviceDriverFileNameA
- #define GetDeviceDriverFileNameW K32GetDeviceDriverFileNameW
- #define GetProcessMemoryInfo K32GetProcessMemoryInfo
- #define GetPerformanceInfo K32GetPerformanceInfo
- #define EnumPageFilesW K32EnumPageFilesW
- #define EnumPageFilesA K32EnumPageFilesA
- #define GetProcessImageFileNameA K32GetProcessImageFileNameA
- #define GetProcessImageFileNameW K32GetProcessImageFileNameW
- #endif
- #define GetModuleBaseName __MINGW_NAME_AW(GetModuleBaseName)
- #define GetModuleFileNameEx __MINGW_NAME_AW(GetModuleFileNameEx)
- #define GetMappedFileName __MINGW_NAME_AW(GetMappedFileName)
- #define GetDeviceDriverBaseName __MINGW_NAME_AW(GetDeviceDriverBaseName)
- #define GetDeviceDriverFileName __MINGW_NAME_AW(GetDeviceDriverFileName)
- #define PENUM_PAGE_FILE_CALLBACK __MINGW_NAME_AW(PENUM_PAGE_FILE_CALLBACK)
- #define EnumPageFiles __MINGW_NAME_AW(EnumPageFiles)
- #define GetProcessImageFileName __MINGW_NAME_AW(GetProcessImageFileName)
- #ifndef LIST_MODULES_DEFAULT
- #define LIST_MODULES_DEFAULT 0x0
- #endif
- #ifndef LIST_MODULES_32BIT
- #define LIST_MODULES_32BIT 0x01
- #endif
- #ifndef LIST_MODULES_64BIT
- #define LIST_MODULES_64BIT 0x02
- #endif
- #ifndef LIST_MODULES_ALL
- #define LIST_MODULES_ALL (LIST_MODULES_32BIT|LIST_MODULES_64BIT)
- #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 (CALLBACK *PENUM_PAGE_FILE_CALLBACKW) (LPVOID pContext,PENUM_PAGE_FILE_INFORMATION pPageFileInfo,LPCWSTR lpFilename);
- typedef WINBOOL (CALLBACK *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);
-
- typedef struct _PSAPI_WS_WATCH_INFORMATION_EX {
- PSAPI_WS_WATCH_INFORMATION BasicInfo;
- ULONG_PTR FaultingThreadId;
- ULONG_PTR Flags;
- } PSAPI_WS_WATCH_INFORMATION_EX, *PPSAPI_WS_WATCH_INFORMATION_EX;
- WINBOOL WINAPI GetWsChangesEx(
- HANDLE hProcess,
- PPSAPI_WS_WATCH_INFORMATION_EX lpWatchInfoEx,
- DWORD cb
- );
- WINBOOL WINAPI EnumProcessModulesEx(
- HANDLE hProcess,
- HMODULE *lphModule,
- DWORD cb,
- LPDWORD lpcbNeeded,
- DWORD dwFilterFlag
- );
- typedef union _PSAPI_WORKING_SET_BLOCK {
- ULONG_PTR Flags;
- __C89_NAMELESS struct {
- ULONG_PTR Protection :5;
- ULONG_PTR ShareCount :3;
- ULONG_PTR Shared :1;
- ULONG_PTR Reserved :3;
- #ifdef _WIN64
- ULONG_PTR VirtualPage :52;
- #else
- ULONG_PTR VirtualPage :20;
- #endif
- } ;
- } PSAPI_WORKING_SET_BLOCK, *PPSAPI_WORKING_SET_BLOCK;
- typedef struct _PSAPI_WORKING_SET_INFORMATION {
- ULONG_PTR NumberOfEntries;
- PSAPI_WORKING_SET_BLOCK WorkingSetInfo[1];
- } PSAPI_WORKING_SET_INFORMATION, *PPSAPI_WORKING_SET_INFORMATION;
- typedef union _PSAPI_WORKING_SET_EX_BLOCK {
- ULONG_PTR Flags;
- __C89_NAMELESS union {
- __C89_NAMELESS struct {
- ULONG_PTR Valid : 1;
- ULONG_PTR ShareCount : 3;
- ULONG_PTR Win32Protection : 11;
- ULONG_PTR Shared : 1;
- ULONG_PTR Node : 6;
- ULONG_PTR Locked : 1;
- ULONG_PTR LargePage : 1;
- ULONG_PTR Reserved : 7;
- ULONG_PTR Bad : 1;
- #ifdef _WIN64
- ULONG_PTR ReservedUlong : 32;
- #endif
- };
- struct {
- ULONG_PTR Valid : 1;
- ULONG_PTR Reserved0 : 14;
- ULONG_PTR Shared : 1;
- ULONG_PTR Reserved1 : 15;
- ULONG_PTR Bad : 1;
- #ifdef _WIN64
- ULONG_PTR ReservedUlong : 32;
- #endif
- } Invalid;
- };
- } PSAPI_WORKING_SET_EX_BLOCK, *PPSAPI_WORKING_SET_EX_BLOCK;
- typedef struct _PSAPI_WORKING_SET_EX_INFORMATION {
- PVOID VirtualAddress;
- PSAPI_WORKING_SET_EX_BLOCK VirtualAttributes;
- } PSAPI_WORKING_SET_EX_INFORMATION, *PPSAPI_WORKING_SET_EX_INFORMATION;
- #ifdef __cplusplus
- }
- #endif
- #endif
|