This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/psapi.h

263 lines
9.9 KiB
C

/*
* psapi.h Process status functions
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#ifndef _PSAPI_H_
#define _PSAPI_H_
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* PSAPI version number */
#ifndef PSAPI_VERSION
#if (NTDDI_VERSION >= 0x06010000)
#define PSAPI_VERSION 2
#else
#define PSAPI_VERSION 1
#endif
#endif
/* EnumProcessModulesEx() filter flags */
#define LIST_MODULES_DEFAULT 0x00000000L
#define LIST_MODULES_32BIT 0x00000001L
#define LIST_MODULES_64BIT 0x00000002L
#define LIST_MODULES_ALL (LIST_MODULES_32BIT | LIST_MODULES_64BIT)
/* Module information */
typedef struct _MODULEINFO {
LPVOID lpBaseOfDll;
DWORD SizeOfImage;
LPVOID EntryPoint;
} MODULEINFO;
typedef MODULEINFO *LPMODULEINFO;
/* Working set block */
typedef union _PSAPI_WORKING_SET_BLOCK {
ULONG_PTR Flags;
struct {
ULONG_PTR Protection : 5;
ULONG_PTR ShareCount : 3;
ULONG_PTR Shared : 1;
ULONG_PTR Reserved : 3;
ULONG_PTR VirtualPage : 20;
};
} PSAPI_WORKING_SET_BLOCK;
typedef PSAPI_WORKING_SET_BLOCK *PPSAPI_WORKING_SET_BLOCK;
/* Working set information */
typedef struct _PSAPI_WORKING_SET_INFORMATION {
ULONG_PTR NumberOfEntries;
PSAPI_WORKING_SET_BLOCK WorkingSetInfo[1];
} PSAPI_WORKING_SET_INFORMATION;
typedef PSAPI_WORKING_SET_INFORMATION *PPSAPI_WORKING_SET_INFORMATION;
/* Working set block (extended version) */
typedef union _PSAPI_WORKING_SET_EX_BLOCK {
ULONG_PTR Flags;
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;
};
} PSAPI_WORKING_SET_EX_BLOCK;
typedef PSAPI_WORKING_SET_EX_BLOCK *PPSAPI_WORKING_SET_EX_BLOCK;
/* Working set information (exteneded version) */
typedef struct _PSAPI_WORKING_SET_EX_INFORMATION {
PVOID VirtualAddress;
PSAPI_WORKING_SET_EX_BLOCK VirtualAttributes;
} PSAPI_WORKING_SET_EX_INFORMATION;
typedef PSAPI_WORKING_SET_EX_INFORMATION *PPSAPI_WORKING_SET_EX_INFORMATION;
/* Working set watch information */
typedef struct _PSAPI_WS_WATCH_INFORMATION {
LPVOID FaultingPc;
LPVOID FaultingVa;
} PSAPI_WS_WATCH_INFORMATION;
typedef PSAPI_WS_WATCH_INFORMATION *PPSAPI_WS_WATCH_INFORMATION;
/* Working set watch information (extended version) */
typedef struct _PSAPI_WS_WATCH_INFORMATION_EX {
PSAPI_WS_WATCH_INFORMATION BasicInfo;
ULONG_PTR FaultingThreadId;
ULONG_PTR Flags;
} PSAPI_WS_WATCH_INFORMATION_EX;
typedef PSAPI_WS_WATCH_INFORMATION_EX *PPSAPI_WS_WATCH_INFORMATION_EX;
/* Process memory counters */
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;
/* Process memory counters (extended version) */
#if (_WIN32_WINNT >= 0x0501)
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;
#endif
/* Performance information */
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;
typedef PERFORMANCE_INFORMATION *PPERFORMANCE_INFORMATION;
typedef PERFORMANCE_INFORMATION PERFORMACE_INFORMATION;
typedef PERFORMANCE_INFORMATION *PPERFORMACE_INFORMATION;
/* Page file enumeration information */
typedef struct _ENUM_PAGE_FILE_INFORMATION {
DWORD cb;
DWORD Reserved;
SIZE_T TotalSize;
SIZE_T TotalInUse;
SIZE_T PeakUsage;
} ENUM_PAGE_FILE_INFORMATION;
typedef ENUM_PAGE_FILE_INFORMATION *PENUM_PAGE_FILE_INFORMATION;
/* Page file enumeration callback */
typedef BOOL (*PENUM_PAGE_FILE_CALLBACKA)( LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCSTR );
typedef BOOL (*PENUM_PAGE_FILE_CALLBACKW)( LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCWSTR );
#ifdef UNICODE
#define ENUM_PAGE_FILE_CALLBACK ENUM_PAGE_FILE_CALLBACKW
#else
#define ENUM_PAGE_FILE_CALLBACK ENUM_PAGE_FILE_CALLBACKA
#endif
/* Internal names of functions in KERNEL32.DLL */
#if (PSAPI_VERSION > 1)
#define EmptyWorkingSet K32EmptyWorkingSet
#define EnumDeviceDrivers K32EnumDeviceDrivers
#define EnumPageFilesA K32EnumPageFilesA
#define EnumPageFilesW K32EnumPageFilesW
#define EnumProcessModules K32EnumProcessModules
#define EnumProcessModulesEx K32EnumProcessModulesEx
#define EnumProcesses K32EnumProcesses
#define GetDeviceDriverBaseNameA K32GetDeviceDriverBaseNameA
#define GetDeviceDriverBaseNameW K32GetDeviceDriverBaseNameW
#define GetDeviceDriverFileNameA K32GetDeviceDriverFileNameA
#define GetDeviceDriverFileNameW K32GetDeviceDriverFileNameW
#define GetMappedFileNameA K32GetMappedFileNameA
#define GetMappedFileNameW K32GetMappedFileNameW
#define GetModuleBaseNameA K32GetModuleBaseNameA
#define GetModuleBaseNameW K32GetModuleBaseNameW
#define GetModuleFileNameExA K32GetModuleFileNameExA
#define GetModuleFileNameExW K32GetModuleFileNameExW
#define GetModuleInformation K32GetModuleInformation
#define GetPerformanceInfo K32GetPerformanceInfo
#define GetProcessImageFileNameA K32GetProcessImageFileNameA
#define GetProcessImageFileNameW K32GetProcessImageFileNameW
#define GetProcessMemoryInfo K32GetProcessMemoryInfo
#define GetWsChanges K32GetWsChanges
#define GetWsChangesEx K32GetWsChangesEx
#define InitializeProcessForWsWatch K32InitializeProcessForWsWatch
#define QueryWorkingSet K32QueryWorkingSet
#define QueryWorkingSetEx K32QueryWorkingSetEx
#endif
/* Functions in PSAPI.DLL and KERNEL32.DLL */
BOOL WINAPI EmptyWorkingSet( HANDLE );
BOOL WINAPI EnumDeviceDrivers( LPVOID *, DWORD, LPDWORD );
BOOL WINAPI EnumPageFilesA( PENUM_PAGE_FILE_CALLBACKA, LPVOID );
BOOL WINAPI EnumPageFilesW( PENUM_PAGE_FILE_CALLBACKW, LPVOID );
BOOL WINAPI EnumProcessModules( HANDLE, HMODULE *, DWORD, LPDWORD );
BOOL WINAPI EnumProcessModulesEx( HANDLE, HMODULE *, DWORD, LPDWORD, DWORD );
BOOL WINAPI EnumProcesses( DWORD *, DWORD, LPDWORD );
DWORD WINAPI GetDeviceDriverBaseNameA( LPVOID, LPSTR, DWORD );
DWORD WINAPI GetDeviceDriverBaseNameW( LPVOID, LPWSTR, DWORD );
DWORD WINAPI GetDeviceDriverFileNameA( LPVOID, LPSTR, DWORD );
DWORD WINAPI GetDeviceDriverFileNameW( LPVOID, LPWSTR, DWORD );
DWORD WINAPI GetMappedFileNameA( HANDLE, LPVOID, LPSTR, DWORD );
DWORD WINAPI GetMappedFileNameW( HANDLE, LPVOID, LPWSTR, DWORD );
DWORD WINAPI GetModuleBaseNameA( HANDLE, HMODULE, LPSTR, DWORD );
DWORD WINAPI GetModuleBaseNameW( HANDLE, HMODULE, LPWSTR, DWORD );
DWORD WINAPI GetModuleFileNameExA( HANDLE, HMODULE, LPSTR, DWORD );
DWORD WINAPI GetModuleFileNameExW( HANDLE, HMODULE, LPWSTR, DWORD );
BOOL WINAPI GetModuleInformation( HANDLE, HMODULE, LPMODULEINFO, DWORD );
BOOL WINAPI GetPerformanceInfo( PPERFORMANCE_INFORMATION, DWORD );
DWORD WINAPI GetProcessImageFileNameA( HANDLE, LPSTR, DWORD );
DWORD WINAPI GetProcessImageFileNameW( HANDLE, LPWSTR, DWORD );
BOOL WINAPI GetProcessMemoryInfo( HANDLE, PPROCESS_MEMORY_COUNTERS, DWORD );
BOOL WINAPI GetWsChanges( HANDLE, PPSAPI_WS_WATCH_INFORMATION, DWORD );
BOOL WINAPI GetWsChangesEx( HANDLE, PPSAPI_WS_WATCH_INFORMATION_EX, PDWORD );
BOOL WINAPI InitializeProcessForWsWatch( HANDLE );
BOOL WINAPI QueryWorkingSet( HANDLE, PVOID, DWORD );
BOOL WINAPI QueryWokringSetEx( HANDLE, PVOID, DWORD );
/* Map generic function names to the appropriate ANSI or Unicode version. */
#ifdef UNICODE
#define EnumPageFiles EnumPageFilesW
#define GetDeviceDriverBaseName GetDeviceDriverBaseNameW
#define GetDeviceDriverFileName GetDeviceDriverFileNameW
#define GetMappedFileName GetMappedFileNameW
#define GetModuleBaseName GetModuleBaseNameW
#define GetModuleFileNameEx GetModuleFileNameExW
#define GetProcessImageFileName GetProcessImageFileNameW
#else
#define EnumPageFiles EnumPageFilesA
#define GetDeviceDriverBaseName GetDeviceDriverBaseNameA
#define GetDeviceDriverFileName GetDeviceDriverFileNameA
#define GetMappedFileName GetMappedFileNameA
#define GetModuleBaseName GetModuleBaseNameA
#define GetModuleFileNameEx GetModuleFileNameExA
#define GetProcessImageFileName GetProcessImageFileNameA
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* _PSAPI_H_ */