TYPE ENUM_PAGE_FILE_INFORMATION
cb AS DWORD '// Size of this structure, in bytes.
Reserved AS DWORD '// This member is reserved.
TotalSize AS DWORD '// Total size of the pagefile, in bytes.
TotalInUse AS DWORD '// Current pagefile usage, in bytes.
PeakUsage AS DWORD '// Peak pagefile usage, in bytes.
END TYPETYPE MODULEINFO
lpBaseOfDll AS DWORD '// Load address of the module.
SizeOfImage AS DWORD '// Size of the linear space that the module occupies, in bytes.
EntryPoint AS DWORD '// Entry point of the module.
END TYPE
TYPE PERFORMANCE_INFORMATION
cb AS DWORD '// Size of this structure, in bytes.
CommitTotal AS DWORD '// Total number of pages committed by the system.
CommitLimit AS DWORD '// Current maximum number of page commits that
'// can be performed by the system. This number
'// can change if memory is added or deleted, or
'// if pagefiles have grown, shrunk, or been added.
CommitPeak AS DWORD '// Maximum number of page commit totals that have
'// occurred since the last reboot.
PhysicalTotal AS DWORD '// Total amount of physical memory, in pages.
PhysicalAvailable AS DWORD '// Amount of physical memory available to user processes, in pages.
SystemCache AS DWORD '// Total amount of system cache memory, in pages.
KernelTotal AS DWORD '// Total amount of the sum of the paged and nonpaged kernel pools, in pages.
KernelPaged AS DWORD '// Total amount of the paged kernel pool, in pages.
KernelNonpaged AS DWORD '// Total amount of the nonpaged kernel pool, in pages.
PageSize AS DWORD '// Size of a page, in bytes.
HandleCount AS DWORD '// Total number of open handles.
ProcessCount AS DWORD '// Total number of processes.
nThreadCount AS DWORD '// Total number of threads.
END TYPE
TYPE PROCESS_MEMORY_COUNTERS
cb AS DWORD '// Size of the structure, in bytes.
PageFaultCount AS DWORD '// Number of page faults.
PeakWorkingSetSize AS DWORD '// Peak working set size.
WorkingSetSize AS DWORD '// Current working set size.
QuotaPeakPagedPoolUsage AS DWORD '// Peak paged pool usage.
QuotaPagedPoolUsage AS DWORD '// Current paged pool usage.
QuotaPeakNonPagedPoolUsage AS DWORD '// Peak nonpaged pool usage.
QuotaNonPagedPoolUsage AS DWORD '// Current nonpaged pool usage.
PagefileUsage AS DWORD '// Current space allocated for the pagefile.
'// Those pages may or may not be in memory.
PeakPagefileUsage AS DWORD '// Peak space allocated for the pagefile.
END TYPE
TYPE PSAPI_WS_WATCH_INFORMATION
FaultingPc AS DWORD '// Pointer to the instruction that caused the page fault.
FaultingVa AS DWORD '// Pointer to the page that was added to the working set.
END TYPE
DECLARE FUNCTION EmptyWorkingSet LIB "PSAPI.DLL" ALIAS "EmptyWorkingSet" ( _
BYVAL hProcess AS DWORD _
) AS LONG
DECLARE FUNCTION EnumDeviceDrivers LIB "PSAPI.DLL" ALIAS "EnumDeviceDrivers" ( _
lpImageBase AS DWORD, _
BYVAL cb AS DWORD, _
lpcbNeedes AS DWORD _
) AS LONG
DECLARE FUNCTION EnumPageFiles LIB "PSAPI.DLL" ALIAS "EnumPageFilesA" ( _
pCallbacRoutine AS DWORD, _
BYVAL lpContext AS DWORD _
) AS LONG
DECLARE FUNCTION EnumPageFilesProc LIB "PSAPI.DLL" ALIAS "EnumPageFilesProcA" ( _
BYVAL pContext AS DWORD, _
BYVAL pPageFileInfo AS ENUM_PAGE_FILE_INFORMATION, _
lpFileName AS ASCIIZ _
) AS LONG
DECLARE FUNCTION EnumProcesses LIB "PSAPI.DLL" ALIAS "EnumProcesses" ( _
lpidProcess AS DWORD, _
BYVAL cb AS DWORD, _
cbNeeded AS DWORD _
) AS LONG
DECLARE FUNCTION EnumProcessModules LIB "PSAPI.DLL" ALIAS "EnumProcessModules" ( _
BYVAL hProcess AS DWORD, _
lphModule AS DWORD, _
BYVAL cb AS DWORD, _
lpcbNeeded AS DWORD _
) AS LONG
DECLARE FUNCTION GetDeviceDriverBaseName LIB "PSAPI.DLL" ALIAS "GetDeviceDriverBaseNameA" ( _
BYVAL ImageBase AS DWORD, _
lpBaseName AS ASCIIZ, _
BYVAL nSize AS DWORD _
) AS DWORD
DECLARE FUNCTION GetDeviceDriverFileName LIB "PSAPI.DLL" ALIAS "GetDeviceDriverFileNameA" ( _
BYVAL ImageBase AS DWORD, _
lpFileName AS ASCIIZ, _
BYVAL nSize AS DWORD _
) AS DWORD
DECLARE FUNCTION GetMappedFileName LIB "PSAPI.DLL" ALIAS "GetMappedFileNameA" ( _
BYVAL hProcess AS DWORD, _
BYVAL lpv AS DWORD, _
lpFileName AS ASCIIZ, _
BYVAL nSize AS DWORD _
) AS DWORD
DECLARE FUNCTION GetModuleBaseName LIB "PSAPI.DLL" ALIAS "GetModuleBaseNameA" ( _
BYVAL hProcess AS DWORD, _
BYVAL hModule AS DWORD, _
lpBaseName AS ASCIIZ, _
BYVAL nSize AS DWORD _
) AS DWORD
DECLARE FUNCTION GetModuleFileNameEx LIB "PSAPI.DLL" ALIAS "GetModuleFileNameExA" ( _
BYVAL hProcess AS DWORD, _
BYVAL hModule AS DWORD, _
lpFilename AS ASCIIZ, _
BYVAL nSize AS DWORD _
) AS DWORD
DECLARE FUNCTION GetModuleInformation LIB "PSAPI.DLL" ALIAS "GetModuleInformation" ( _
BYVAL hProcess AS DWORD, _
BYVAL hModule AS DWORD, _
lpmodinfo AS MODULEINFO, _
BYVAL cb AS DWORD _
) AS LONG
DECLARE FUNCTION GetPerformanceInfo LIB "PSAPI.DLL" ALIAS "GetPerformanceInfo" ( _
pPerformanceInformation AS PERFORMANCE_INFORMATION, _
cb AS DWORD _
) AS LONG
DECLARE FUNCTION GetProcessImageFileName LIB "PSAPI.DLL" ALIAS "GetProcessImageFileNameA" ( _
BYVAL hProcess AS DWORD, _
lpImageFileName AS ASCIIZ, _
BYVAL nSize AS DWORD _
) AS DWORD
DECLARE FUNCTION GetProcessMemoryInfo LIB "PSAPI.DLL" ALIAS "GetProcessMemoryInfo" ( _
BYVAL hProcess AS DWORD, _
ppsmemCounters AS PROCESS_MEMORY_COUNTERS, _
BYVAL cb AS DWORD _
) AS LONG
DECLARE FUNCTION GetWsChanges LIB "PSAPI.DLL" ALIAS "GetWsChanges" ( _
BYVAL hProcess AS DWORD, _
lpWatchInfo AS PSAPI_WS_WATCH_INFORMATION, _
BYVAL cb AS DWORD _
) AS LONG
DECLARE FUNCTION InitializeProcessForWsWatch ALIAS "InitializeProcessForWsWatch" ( _
BYVAL hProcess AS DWORD _
) AS LONG
DECLARE FUNCTION QueryWorkingSet LIB "PSAPI.DLL" ALIAS "QueryWorkingSet" ( _
BYVAL hProcess AS DWORD, _
pv AS DWORD, _
BYVAL cb AS DWORD _
) AS LONG