File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                                psapi.d                                *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Windows API header module                       *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                 Translated from MinGW Windows headers                 *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Placed into public domain                       *
4e2933c620 2015-04-21        kinaba: \***********************************************************************/
4e2933c620 2015-04-21        kinaba: /* Comment from MinGW
4e2933c620 2015-04-21        kinaba:  *   Process status API (PSAPI)
4e2933c620 2015-04-21        kinaba:  *   http://windowssdk.msdn.microsoft.com/library/ms684884.aspx
4e2933c620 2015-04-21        kinaba:  */
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: module win32.psapi;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: private import win32.w32api;
4e2933c620 2015-04-21        kinaba: private import win32.winbase;
4e2933c620 2015-04-21        kinaba: private import win32.windef;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct MODULEINFO {
4e2933c620 2015-04-21        kinaba: 	LPVOID lpBaseOfDll;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfImage;
4e2933c620 2015-04-21        kinaba: 	LPVOID EntryPoint;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias MODULEINFO* LPMODULEINFO;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct PSAPI_WS_WATCH_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	LPVOID FaultingPc;
4e2933c620 2015-04-21        kinaba: 	LPVOID FaultingVa;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias PSAPI_WS_WATCH_INFORMATION* PPSAPI_WS_WATCH_INFORMATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct PSAPI_WS_WATCH_INFORMATION_EX {
4e2933c620 2015-04-21        kinaba: 	PSAPI_WS_WATCH_INFORMATION BasicInfo;
4e2933c620 2015-04-21        kinaba: 	ULONG_PTR FaultingThreadId;
4e2933c620 2015-04-21        kinaba: 	ULONG_PTR Flags;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias PSAPI_WS_WATCH_INFORMATION_EX* PPSAPI_WS_WATCH_INFORMATION_EX;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct PROCESS_MEMORY_COUNTERS {
4e2933c620 2015-04-21        kinaba: 	DWORD cb;
4e2933c620 2015-04-21        kinaba: 	DWORD PageFaultCount;
4e2933c620 2015-04-21        kinaba: 	DWORD PeakWorkingSetSize;
4e2933c620 2015-04-21        kinaba: 	DWORD WorkingSetSize;
4e2933c620 2015-04-21        kinaba: 	DWORD QuotaPeakPagedPoolUsage;
4e2933c620 2015-04-21        kinaba: 	DWORD QuotaPagedPoolUsage;
4e2933c620 2015-04-21        kinaba: 	DWORD QuotaPeakNonPagedPoolUsage;
4e2933c620 2015-04-21        kinaba: 	DWORD QuotaNonPagedPoolUsage;
4e2933c620 2015-04-21        kinaba: 	DWORD PagefileUsage;
4e2933c620 2015-04-21        kinaba: 	DWORD PeakPagefileUsage;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias PROCESS_MEMORY_COUNTERS* PPROCESS_MEMORY_COUNTERS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct PERFORMANCE_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	DWORD cb;
4e2933c620 2015-04-21        kinaba: 	SIZE_T CommitTotal;
4e2933c620 2015-04-21        kinaba: 	SIZE_T CommitLimit;
4e2933c620 2015-04-21        kinaba: 	SIZE_T CommitPeak;
4e2933c620 2015-04-21        kinaba: 	SIZE_T PhysicalTotal;
4e2933c620 2015-04-21        kinaba: 	SIZE_T PhysicalAvailable;
4e2933c620 2015-04-21        kinaba: 	SIZE_T SystemCache;
4e2933c620 2015-04-21        kinaba: 	SIZE_T KernelTotal;
4e2933c620 2015-04-21        kinaba: 	SIZE_T KernelPaged;
4e2933c620 2015-04-21        kinaba: 	SIZE_T KernelNonpaged;
4e2933c620 2015-04-21        kinaba: 	SIZE_T PageSize;
4e2933c620 2015-04-21        kinaba: 	DWORD HandleCount;
4e2933c620 2015-04-21        kinaba: 	DWORD ProcessCount;
4e2933c620 2015-04-21        kinaba: 	DWORD ThreadCount;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias PERFORMANCE_INFORMATION* PPERFORMANCE_INFORMATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ENUM_PAGE_FILE_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	DWORD cb;
4e2933c620 2015-04-21        kinaba: 	DWORD Reserved;
4e2933c620 2015-04-21        kinaba: 	SIZE_T TotalSize;
4e2933c620 2015-04-21        kinaba: 	SIZE_T TotalInUse;
4e2933c620 2015-04-21        kinaba: 	SIZE_T PeakUsage;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ENUM_PAGE_FILE_INFORMATION* PENUM_PAGE_FILE_INFORMATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /* application-defined callback function used with the EnumPageFiles()
4e2933c620 2015-04-21        kinaba:  * http://windowssdk.msdn.microsoft.com/library/ms682627.aspx */
4e2933c620 2015-04-21        kinaba: version (Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias BOOL function(LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCWSTR)
4e2933c620 2015-04-21        kinaba: 	  PENUM_PAGE_FILE_CALLBACK;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias BOOL function(LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCSTR)
4e2933c620 2015-04-21        kinaba: 	  PENUM_PAGE_FILE_CALLBACK;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // Grouped by application, not in alphabetical order.
4e2933c620 2015-04-21        kinaba: extern (Windows) {
4e2933c620 2015-04-21        kinaba: 	/* Process Information
4e2933c620 2015-04-21        kinaba: 	 * http://windowssdk.msdn.microsoft.com/library/ms684870.aspx */
4e2933c620 2015-04-21        kinaba: 	BOOL EnumProcesses(DWORD*, DWORD, DWORD*); /* NT/2000/XP/Server2003/Vista/Longhorn */
4e2933c620 2015-04-21        kinaba: 	DWORD GetProcessImageFileNameA(HANDLE, LPSTR, DWORD); /* XP/Server2003/Vista/Longhorn */
4e2933c620 2015-04-21        kinaba: 	DWORD GetProcessImageFileNameW(HANDLE, LPWSTR, DWORD); /* XP/Server2003/Vista/Longhorn */
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	/* Module Information
4e2933c620 2015-04-21        kinaba: 	 * http://windowssdk.msdn.microsoft.com/library/ms684232.aspx */
4e2933c620 2015-04-21        kinaba: 	BOOL EnumProcessModules(HANDLE, HMODULE*, DWORD, LPDWORD);
4e2933c620 2015-04-21        kinaba: 	BOOL EnumProcessModulesEx(HANDLE, HMODULE*, DWORD, LPDWORD, DWORD); /* Vista/Longhorn */
4e2933c620 2015-04-21        kinaba: 	DWORD GetModuleBaseNameA(HANDLE, HMODULE, LPSTR, DWORD);
4e2933c620 2015-04-21        kinaba: 	DWORD GetModuleBaseNameW(HANDLE, HMODULE, LPWSTR, DWORD);
4e2933c620 2015-04-21        kinaba: 	DWORD GetModuleFileNameExA(HANDLE, HMODULE, LPSTR, DWORD);
4e2933c620 2015-04-21        kinaba: 	DWORD GetModuleFileNameExW(HANDLE, HMODULE, LPWSTR, DWORD);
4e2933c620 2015-04-21        kinaba: 	BOOL GetModuleInformation(HANDLE, HMODULE, LPMODULEINFO, DWORD);
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	/* Device Driver Information
4e2933c620 2015-04-21        kinaba: 	 * http://windowssdk.msdn.microsoft.com/library/ms682578.aspx */
4e2933c620 2015-04-21        kinaba: 	BOOL EnumDeviceDrivers(LPVOID*, DWORD, LPDWORD);
4e2933c620 2015-04-21        kinaba: 	DWORD GetDeviceDriverBaseNameA(LPVOID, LPSTR, DWORD);
4e2933c620 2015-04-21        kinaba: 	DWORD GetDeviceDriverBaseNameW(LPVOID, LPWSTR, DWORD);
4e2933c620 2015-04-21        kinaba: 	DWORD GetDeviceDriverFileNameA(LPVOID, LPSTR, DWORD);
4e2933c620 2015-04-21        kinaba: 	DWORD GetDeviceDriverFileNameW(LPVOID, LPWSTR, DWORD);
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	/* Process Memory Usage Information
4e2933c620 2015-04-21        kinaba: 	 * http://windowssdk.msdn.microsoft.com/library/ms684879.aspx */
4e2933c620 2015-04-21        kinaba: 	BOOL GetProcessMemoryInfo(HANDLE, PPROCESS_MEMORY_COUNTERS, DWORD);
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	/* Working Set Information
4e2933c620 2015-04-21        kinaba: 	 * http://windowssdk.msdn.microsoft.com/library/ms687398.aspx */
4e2933c620 2015-04-21        kinaba: 	BOOL EmptyWorkingSet(HANDLE);
4e2933c620 2015-04-21        kinaba: 	BOOL GetWsChanges(HANDLE, PPSAPI_WS_WATCH_INFORMATION, DWORD);
4e2933c620 2015-04-21        kinaba: 	BOOL GetWsChangesEx(HANDLE, PPSAPI_WS_WATCH_INFORMATION_EX, DWORD); /* Vista/Longhorn */
4e2933c620 2015-04-21        kinaba: 	BOOL InitializeProcessForWsWatch(HANDLE);
4e2933c620 2015-04-21        kinaba: 	BOOL QueryWorkingSet(HANDLE, PVOID, DWORD);
4e2933c620 2015-04-21        kinaba: 	BOOL QueryWorkingSetEx(HANDLE, PVOID, DWORD);
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	/* Memory-Mapped File Information
4e2933c620 2015-04-21        kinaba: 	 * http://windowssdk.msdn.microsoft.com/library/ms684212.aspx */
4e2933c620 2015-04-21        kinaba: 	DWORD GetMappedFileNameW(HANDLE, LPVOID, LPWSTR, DWORD);
4e2933c620 2015-04-21        kinaba: 	DWORD GetMappedFileNameA(HANDLE, LPVOID, LPSTR, DWORD);
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	/* Resources Information */
4e2933c620 2015-04-21        kinaba: 	BOOL GetPerformanceInfo(PPERFORMANCE_INFORMATION, DWORD); /* XP/Server2003/Vista/Longhorn */
4e2933c620 2015-04-21        kinaba: 	BOOL EnumPageFilesW(PENUM_PAGE_FILE_CALLBACK, LPVOID); /* 2000/XP/Server2003/Vista/Longhorn */
4e2933c620 2015-04-21        kinaba: 	BOOL EnumPageFilesA(PENUM_PAGE_FILE_CALLBACK, LPVOID); /* 2000/XP/Server2003/Vista/Longhorn */
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version (Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias GetModuleBaseNameW GetModuleBaseName;
4e2933c620 2015-04-21        kinaba: 	alias GetModuleFileNameExW GetModuleFileNameEx;
4e2933c620 2015-04-21        kinaba: 	alias GetMappedFileNameW GetMappedFileName;
4e2933c620 2015-04-21        kinaba: 	alias GetDeviceDriverBaseNameW GetDeviceDriverBaseName;
4e2933c620 2015-04-21        kinaba: 	alias GetDeviceDriverFileNameW GetDeviceDriverFileName;
4e2933c620 2015-04-21        kinaba: 	alias EnumPageFilesW EnumPageFiles;
4e2933c620 2015-04-21        kinaba: 	alias GetProcessImageFileNameW GetProcessImageFileName;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias GetModuleBaseNameA GetModuleBaseName;
4e2933c620 2015-04-21        kinaba: 	alias GetModuleFileNameExA GetModuleFileNameEx;
4e2933c620 2015-04-21        kinaba: 	alias GetMappedFileNameA GetMappedFileName;
4e2933c620 2015-04-21        kinaba: 	alias GetDeviceDriverBaseNameA GetDeviceDriverBaseName;
4e2933c620 2015-04-21        kinaba: 	alias GetDeviceDriverFileNameA GetDeviceDriverFileName;
4e2933c620 2015-04-21        kinaba: 	alias EnumPageFilesA EnumPageFiles;
4e2933c620 2015-04-21        kinaba: 	alias GetProcessImageFileNameA GetProcessImageFileName;
4e2933c620 2015-04-21        kinaba: }