diff win32/psapi.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/win32/psapi.d	Tue Apr 05 20:44:01 2011 +0200
@@ -0,0 +1,158 @@
+/***********************************************************************\
+*                                psapi.d                                *
+*                                                                       *
+*                       Windows API header module                       *
+*                                                                       *
+*                 Translated from MinGW Windows headers                 *
+*                                                                       *
+*                       Placed into public domain                       *
+\***********************************************************************/
+/* Comment from MinGW
+ *   Process status API (PSAPI)
+ *   http://windowssdk.msdn.microsoft.com/library/ms684884.aspx
+ */
+
+module win32.psapi;
+
+private import win32.w32api;
+private import win32.winbase;
+private import win32.windef;
+
+struct MODULEINFO {
+	LPVOID lpBaseOfDll;
+	DWORD SizeOfImage;
+	LPVOID EntryPoint;
+}
+alias MODULEINFO* LPMODULEINFO;
+
+struct PSAPI_WS_WATCH_INFORMATION {
+	LPVOID FaultingPc;
+	LPVOID FaultingVa;
+}
+alias PSAPI_WS_WATCH_INFORMATION* PPSAPI_WS_WATCH_INFORMATION;
+
+struct PSAPI_WS_WATCH_INFORMATION_EX {
+	PSAPI_WS_WATCH_INFORMATION BasicInfo;
+	ULONG_PTR FaultingThreadId;
+	ULONG_PTR Flags;
+}
+alias PSAPI_WS_WATCH_INFORMATION_EX* PPSAPI_WS_WATCH_INFORMATION_EX;
+
+struct PROCESS_MEMORY_COUNTERS {
+	DWORD cb;
+	DWORD PageFaultCount;
+	DWORD PeakWorkingSetSize;
+	DWORD WorkingSetSize;
+	DWORD QuotaPeakPagedPoolUsage;
+	DWORD QuotaPagedPoolUsage;
+	DWORD QuotaPeakNonPagedPoolUsage;
+	DWORD QuotaNonPagedPoolUsage;
+	DWORD PagefileUsage;
+	DWORD PeakPagefileUsage;
+}
+alias PROCESS_MEMORY_COUNTERS* PPROCESS_MEMORY_COUNTERS;
+
+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;
+}
+alias PERFORMANCE_INFORMATION* PPERFORMANCE_INFORMATION;
+
+struct ENUM_PAGE_FILE_INFORMATION {
+	DWORD cb;
+	DWORD Reserved;
+	SIZE_T TotalSize;
+	SIZE_T TotalInUse;
+	SIZE_T PeakUsage;
+}
+alias ENUM_PAGE_FILE_INFORMATION* PENUM_PAGE_FILE_INFORMATION;
+
+/* application-defined callback function used with the EnumPageFiles()
+ * http://windowssdk.msdn.microsoft.com/library/ms682627.aspx */
+version (Unicode) {
+	alias BOOL function(LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCWSTR)
+	  PENUM_PAGE_FILE_CALLBACK;
+} else {
+	alias BOOL function(LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCSTR)
+	  PENUM_PAGE_FILE_CALLBACK;
+}
+
+// Grouped by application, not in alphabetical order.
+extern (Windows) {
+	/* Process Information
+	 * http://windowssdk.msdn.microsoft.com/library/ms684870.aspx */
+	BOOL EnumProcesses(DWORD*, DWORD, DWORD*); /* NT/2000/XP/Server2003/Vista/Longhorn */
+	DWORD GetProcessImageFileNameA(HANDLE, LPSTR, DWORD); /* XP/Server2003/Vista/Longhorn */
+	DWORD GetProcessImageFileNameW(HANDLE, LPWSTR, DWORD); /* XP/Server2003/Vista/Longhorn */
+
+	/* Module Information
+	 * http://windowssdk.msdn.microsoft.com/library/ms684232.aspx */
+	BOOL EnumProcessModules(HANDLE, HMODULE*, DWORD, LPDWORD);
+	BOOL EnumProcessModulesEx(HANDLE, HMODULE*, DWORD, LPDWORD, DWORD); /* Vista/Longhorn */
+	DWORD GetModuleBaseNameA(HANDLE, HMODULE, LPSTR, DWORD);
+	DWORD GetModuleBaseNameW(HANDLE, HMODULE, LPWSTR, DWORD);
+	DWORD GetModuleFileNameExA(HANDLE, HMODULE, LPSTR, DWORD);
+	DWORD GetModuleFileNameExW(HANDLE, HMODULE, LPWSTR, DWORD);
+	BOOL GetModuleInformation(HANDLE, HMODULE, LPMODULEINFO, DWORD);
+
+	/* Device Driver Information
+	 * http://windowssdk.msdn.microsoft.com/library/ms682578.aspx */
+	BOOL EnumDeviceDrivers(LPVOID*, DWORD, LPDWORD);
+	DWORD GetDeviceDriverBaseNameA(LPVOID, LPSTR, DWORD);
+	DWORD GetDeviceDriverBaseNameW(LPVOID, LPWSTR, DWORD);
+	DWORD GetDeviceDriverFileNameA(LPVOID, LPSTR, DWORD);
+	DWORD GetDeviceDriverFileNameW(LPVOID, LPWSTR, DWORD);
+
+	/* Process Memory Usage Information
+	 * http://windowssdk.msdn.microsoft.com/library/ms684879.aspx */
+	BOOL GetProcessMemoryInfo(HANDLE, PPROCESS_MEMORY_COUNTERS, DWORD);
+
+	/* Working Set Information
+	 * http://windowssdk.msdn.microsoft.com/library/ms687398.aspx */
+	BOOL EmptyWorkingSet(HANDLE);
+	BOOL GetWsChanges(HANDLE, PPSAPI_WS_WATCH_INFORMATION, DWORD);
+	BOOL GetWsChangesEx(HANDLE, PPSAPI_WS_WATCH_INFORMATION_EX, DWORD); /* Vista/Longhorn */
+	BOOL InitializeProcessForWsWatch(HANDLE);
+	BOOL QueryWorkingSet(HANDLE, PVOID, DWORD);
+	BOOL QueryWorkingSetEx(HANDLE, PVOID, DWORD);
+
+	/* Memory-Mapped File Information
+	 * http://windowssdk.msdn.microsoft.com/library/ms684212.aspx */
+	DWORD GetMappedFileNameW(HANDLE, LPVOID, LPWSTR, DWORD);
+	DWORD GetMappedFileNameA(HANDLE, LPVOID, LPSTR, DWORD);
+
+	/* Resources Information */
+	BOOL GetPerformanceInfo(PPERFORMANCE_INFORMATION, DWORD); /* XP/Server2003/Vista/Longhorn */
+	BOOL EnumPageFilesW(PENUM_PAGE_FILE_CALLBACK, LPVOID); /* 2000/XP/Server2003/Vista/Longhorn */
+	BOOL EnumPageFilesA(PENUM_PAGE_FILE_CALLBACK, LPVOID); /* 2000/XP/Server2003/Vista/Longhorn */
+}
+
+version (Unicode) {
+	alias GetModuleBaseNameW GetModuleBaseName;
+	alias GetModuleFileNameExW GetModuleFileNameEx;
+	alias GetMappedFileNameW GetMappedFileName;
+	alias GetDeviceDriverBaseNameW GetDeviceDriverBaseName;
+	alias GetDeviceDriverFileNameW GetDeviceDriverFileName;
+	alias EnumPageFilesW EnumPageFiles;
+	alias GetProcessImageFileNameW GetProcessImageFileName;
+} else {
+	alias GetModuleBaseNameA GetModuleBaseName;
+	alias GetModuleFileNameExA GetModuleFileNameEx;
+	alias GetMappedFileNameA GetMappedFileName;
+	alias GetDeviceDriverBaseNameA GetDeviceDriverBaseName;
+	alias GetDeviceDriverFileNameA GetDeviceDriverFileName;
+	alias EnumPageFilesA EnumPageFiles;
+	alias GetProcessImageFileNameA GetProcessImageFileName;
+}