home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 June / Chip_2002-06_cd1.bin / zkuste / delphi / kompon / d56 / MSYSINFO.ZIP / Int / MiTeC_PsAPI.int < prev    next >
Encoding:
Text File  |  2002-03-01  |  4.9 KB  |  94 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       MiTeC System Information Component              }
  5. {         Windows Process Status Helper                 }
  6. {           version 7.3 for Delphi 5,6                  }
  7. {                                                       }
  8. {       Copyright ⌐ 1997,2001 Michal Mutl               }
  9. {                                                       }
  10. {*******************************************************}
  11.  
  12. {$INCLUDE MITEC_DEF.INC}
  13.  
  14. unit MiTeC_PSAPI;
  15.  
  16. interface
  17.  
  18. uses Classes, Windows, ShellAPI, SysUtils;
  19.  
  20. type
  21.   PHInst = ^HInst;
  22.   TModuleInfo = record
  23.     lpBaseOfDll : pointer;
  24.     SizeOfImage : Integer;
  25.     EntryPoint : pointer
  26.   end;
  27.  
  28.   TPSAPIWsWatchInformation = record
  29.     FaultingPc : pointer;
  30.     FaultingVa : pointer
  31.   end;
  32.  
  33.   TProcessMemoryCounters = record
  34.     cb : Integer;
  35.     PageFaultCount : Integer;
  36.     PeakWorkingSetSize : Integer;
  37.     WorkingSetSize : Integer;
  38.     QuotaPeakPagedPoolUsage : Integer;
  39.     QuotaPagedPoolUsage : Integer;
  40.     QuotaPeakNonPagedPoolUsage : Integer;
  41.     QuotaNonPagedPoolUsage : Integer;
  42.     PagefileUsage : Integer;
  43.     PeakPagefileUsage : Integer
  44.   end;
  45.  
  46.   TaskEnumProcEx = function(threadID : DWORD; hMod16 : WORD; hTask16 : WORD; modName : PChar; fileName : PChar; param : DWORD) : BOOL; stdcall;
  47.  
  48.   function InitPSAPI: Boolean;
  49.   function FreePSAPI: Boolean;
  50.   function EnumProcesses(pidList : PInteger; cb : Integer; var cbNeeded : DWORD): boolean; stdcall;
  51.   function EnumProcessModules(hProcess : THandle; moduleList : PHInst; cb : Integer; var cbNeeded : DWORD) : boolean; stdcall;
  52.   function GetModuleBaseName(hProcess : THandle; module : HInst; BaseName : Pchar; size : Integer) : Integer; stdcall;
  53.   function GetModuleFileNameEx(hProcess : THandle; module : HInst; FileName : PChar; size : Integer) : Integer; stdcall;
  54.   function GetModuleInformation(hProcess : THandle; module : HInst; var info : TModuleInfo; size : Integer) : boolean; stdcall;
  55.   function EmptyWorkingSet(hProcess : THandle) : boolean; stdcall;
  56.   function QueryWorkingSet(hProcess : THandle; var pv; size : Integer) : boolean; stdcall;
  57.   function InitializeProcessForWsWatch(hProcess : THandle) : boolean; stdcall;
  58.   function GetWsChanges(hProcess : THandle; var WatchInfo : TPSAPIWsWatchInformation; size : Integer) : boolean; stdcall;
  59.   function GetMappedFileName(hProcess : THandle; pv : pointer; FileName : PChar; size : Integer) : Integer; stdcall;
  60.   function EnumDeviceDrivers(ImageBase : PInteger; cb : dword; var cbNeeded : dword) : boolean; stdcall;
  61.   function GetDeviceDriverBaseName(ImageBase : Integer; BaseName : PChar; size : dword) : Integer; stdcall;
  62.   function GetDeviceDriverFileName(ImageBase : Integer; FileName : PChar; size : dword) : Integer; stdcall;
  63.   function GetProcessMemoryInfo(hProcess : THandle; var ProcessMemoryCounters : TProcessMemoryCounters; size : Integer) : boolean; stdcall;
  64.  
  65.   function InitVDM: Boolean;
  66.   function FreeVDM: Boolean;
  67.   function VDMEnumTaskWOWEx(pid : DWORD; callback : TaskEnumProcEx; param : DWORD) : Integer; stdcall;
  68.  
  69. type
  70.   TVDMEnumTaskWOWEx = function (pid : DWORD; callback : TaskEnumProcEx; param : DWORD) : Integer; stdcall;
  71.  
  72.   TEnumProcesses = function (pidList : PInteger; cb : Integer; var cbNeeded : DWORD): boolean; stdcall;
  73.   TEnumProcessModules = function (hProcess : THandle; moduleList : PHInst; cb : Integer; var cbNeeded : DWORD) : boolean; stdcall;
  74.   TGetModuleBaseName = function (hProcess : THandle; module : HInst; BaseName : Pchar; size : Integer) : Integer; stdcall;
  75.   TGetModuleFileNameEx = function (hProcess : THandle; module : HInst; FileName : PChar; size : Integer) : Integer; stdcall;
  76.   TGetModuleInformation = function (hProcess : THandle; module : HInst; var info : TModuleInfo; size : Integer) : boolean; stdcall;
  77.   TEmptyWorkingSet = function (hProcess : THandle) : boolean; stdcall;
  78.   TQueryWorkingSet = function (hProcess : THandle; var pv; size : Integer) : boolean; stdcall;
  79.   TInitializeProcessForWsWatch = function (hProcess : THandle) : boolean; stdcall;
  80.   TGetWsChanges = function (hProcess : THandle; var WatchInfo : TPSAPIWsWatchInformation; size : Integer) : boolean; stdcall;
  81.   TGetMappedFileName = function (hProcess : THandle; pv : pointer; FileName : PChar; size : Integer) : Integer; stdcall;
  82.   TEnumDeviceDrivers = function (ImageBase : PInteger; cb : dword; var cbNeeded : dword) : boolean; stdcall;
  83.   TGetDeviceDriverBaseName = function (ImageBase : Integer; BaseName : PChar; size : dword) : Integer; stdcall;
  84.   TGetDeviceDriverFileName = function (ImageBase : Integer; FileName : PChar; size : dword) : Integer; stdcall;
  85.   TGetProcessMemoryInfo = function (hProcess : THandle; var ProcessMemoryCounters : TProcessMemoryCounters; size : Integer) : boolean; stdcall;
  86.  
  87. var
  88.   modulelist :PHInst;
  89.   PSAPILoaded :Boolean;
  90.  
  91. implementation
  92.  
  93.  
  94.