123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741 |
- {******************************************************************************}
- { }
- { Process Status API interface Unit for Object Pascal }
- { }
- { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
- { Corporation. All Rights Reserved. }
- { }
- { The original file is: psapi.h, released June 2000. The original Pascal }
- { code is: PsApi.pas, released December 2000. The initial developer of the }
- { Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
- { }
- { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
- { Marcel van Brakel. All Rights Reserved. }
- { }
- { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
- { }
- { You may retrieve the latest version of this file at the Project JEDI }
- { APILIB home page, located at http://jedi-apilib.sourceforge.net }
- { }
- { The contents of this file are used with permission, subject to the Mozilla }
- { Public License Version 1.1 (the "License"); you may not use this file except }
- { in compliance with the License. You may obtain a copy of the License at }
- { http://www.mozilla.org/MPL/MPL-1.1.html }
- { }
- { Software distributed under the License is distributed on an "AS IS" basis, }
- { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
- { the specific language governing rights and limitations under the License. }
- { }
- { Alternatively, the contents of this file may be used under the terms of the }
- { GNU Lesser General Public License (the "LGPL License"), in which case the }
- { provisions of the LGPL License are applicable instead of those above. }
- { If you wish to allow use of your version of this file only under the terms }
- { of the LGPL License and not to allow others to use your version of this file }
- { under the MPL, indicate your decision by deleting the provisions above and }
- { replace them with the notice and other provisions required by the LGPL }
- { License. If you do not delete the provisions above, a recipient may use }
- { your version of this file under either the MPL or the LGPL License. }
- { }
- { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
- { }
- {******************************************************************************}
- // $Id: JwaPsApi.pas,v 1.10 2005/09/06 16:36:50 marquardt Exp $
- unit JwaPsApi;
- {$WEAKPACKAGEUNIT}
- {$HPPEMIT ''}
- {$HPPEMIT '#include <psapi.h>'}
- {$HPPEMIT ''}
- {$I jediapilib.inc}
- interface
- uses
- JwaWindows;
- function EnumProcesses(lpidProcess: LPDWORD; cb: DWORD; var cbNeeded: DWORD): BOOL; stdcall;
- {$EXTERNALSYM EnumProcesses}
- function EnumProcessModules(hProcess: HANDLE; lphModule: PHMODULE; cb: DWORD;
- var lpcbNeeded: DWORD): BOOL; stdcall;
- {$EXTERNALSYM EnumProcessModules}
- function GetModuleBaseNameA(hProcess: HANDLE; hModule: HMODULE; lpBaseName: LPSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetModuleBaseNameA}
- function GetModuleBaseNameW(hProcess: HANDLE; hModule: HMODULE; lpBaseName: LPWSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetModuleBaseNameW}
- function GetModuleBaseName(hProcess: HANDLE; hModule: HMODULE; lpBaseName: LPTSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetModuleBaseName}
- function GetModuleFileNameExA(hProcess: HANDLE; hModule: HMODULE; lpFilename: LPSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetModuleFileNameExA}
- function GetModuleFileNameExW(hProcess: HANDLE; hModule: HMODULE; lpFilename: LPWSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetModuleFileNameExW}
- function GetModuleFileNameEx(hProcess: HANDLE; hModule: HMODULE; lpFilename: LPTSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetModuleFileNameEx}
- type
- LPMODULEINFO = ^MODULEINFO;
- {$EXTERNALSYM LPMODULEINFO}
- _MODULEINFO = packed record
- lpBaseOfDll: LPVOID;
- SizeOfImage: DWORD;
- EntryPoint: LPVOID;
- end;
- {$EXTERNALSYM _MODULEINFO}
- MODULEINFO = _MODULEINFO;
- {$EXTERNALSYM MODULEINFO}
- TModuleInfo = MODULEINFO;
- PModuleInfo = LPMODULEINFO;
- function GetModuleInformation(hProcess: HANDLE; hModule: HMODULE;
- var lpmodinfo: MODULEINFO; cb: DWORD): BOOL; stdcall;
- {$EXTERNALSYM GetModuleInformation}
- function EmptyWorkingSet(hProcess: HANDLE): BOOL; stdcall;
- {$EXTERNALSYM EmptyWorkingSet}
- function QueryWorkingSet(hProcess: HANDLE; pv: PVOID; cb: DWORD): BOOL; stdcall;
- {$EXTERNALSYM QueryWorkingSet}
- function InitializeProcessForWsWatch(hProcess: HANDLE): BOOL; stdcall;
- {$EXTERNALSYM InitializeProcessForWsWatch}
- type
- PPSAPI_WS_WATCH_INFORMATION = ^PSAPI_WS_WATCH_INFORMATION;
- {$EXTERNALSYM PPSAPI_WS_WATCH_INFORMATION}
- _PSAPI_WS_WATCH_INFORMATION = packed record
- FaultingPc: LPVOID;
- FaultingVa: LPVOID;
- end;
- {$EXTERNALSYM _PSAPI_WS_WATCH_INFORMATION}
- PSAPI_WS_WATCH_INFORMATION = _PSAPI_WS_WATCH_INFORMATION;
- {$EXTERNALSYM PSAPI_WS_WATCH_INFORMATION}
- TPsApiWsWatchInformation = PSAPI_WS_WATCH_INFORMATION;
- PPsApiWsWatchInformation = PPSAPI_WS_WATCH_INFORMATION;
- function GetWsChanges(hProcess: HANDLE; var lpWatchInfo: PSAPI_WS_WATCH_INFORMATION;
- cb: DWORD): BOOL; stdcall;
- {$EXTERNALSYM GetWsChanges}
- function GetMappedFileNameW(hProcess: HANDLE; lpv: LPVOID; lpFilename: LPWSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetMappedFileNameW}
- function GetMappedFileNameA(hProcess: HANDLE; lpv: LPVOID; lpFilename: LPSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetMappedFileNameA}
- function GetMappedFileName(hProcess: HANDLE; lpv: LPVOID; lpFilename: LPTSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetMappedFileName}
- function EnumDeviceDrivers(lpImageBase: LPLPVOID; cb: DWORD; var lpcbNeeded: DWORD): BOOL; stdcall;
- {$EXTERNALSYM EnumDeviceDrivers}
- function GetDeviceDriverBaseNameA(ImageBase: LPVOID; lpBaseName: LPSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetDeviceDriverBaseNameA}
- function GetDeviceDriverBaseNameW(ImageBase: LPVOID; lpBaseName: LPWSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetDeviceDriverBaseNameW}
- function GetDeviceDriverBaseName(ImageBase: LPVOID; lpBaseName: LPTSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetDeviceDriverBaseName}
- function GetDeviceDriverFileNameA(ImageBase: LPVOID; lpFilename: LPSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetDeviceDriverFileNameA}
- function GetDeviceDriverFileNameW(ImageBase: LPVOID; lpFilename: LPWSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetDeviceDriverFileNameW}
- function GetDeviceDriverFileName(ImageBase: LPVOID; lpFilename: LPTSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetDeviceDriverFileName}
- // Structure for GetProcessMemoryInfo()
- type
- PPROCESS_MEMORY_COUNTERS = ^PROCESS_MEMORY_COUNTERS;
- {$EXTERNALSYM PPROCESS_MEMORY_COUNTERS}
- _PROCESS_MEMORY_COUNTERS = packed record
- cb: DWORD;
- PageFaultCount: DWORD;
- PeakWorkingSetSize: SIZE_T;
- WorkingSetSize: SIZE_T;
- QuotaPeakPagedPoolUsage: SIZE_T;
- QuotaPagedPoolUsage: SIZE_T;
- QuotaPeakNonPagedPoolUsage: SIZE_T;
- QuotaNonPagedPoolUsage: SIZE_T;
- PagefileUsage: SIZE_T;
- PeakPagefileUsage: SIZE_T;
- end;
- {$EXTERNALSYM _PROCESS_MEMORY_COUNTERS}
- PROCESS_MEMORY_COUNTERS = _PROCESS_MEMORY_COUNTERS;
- {$EXTERNALSYM PROCESS_MEMORY_COUNTERS}
- TProcessMemoryCounters = PROCESS_MEMORY_COUNTERS;
- PProcessMemoryCounters = PPROCESS_MEMORY_COUNTERS;
- _PROCESS_MEMORY_COUNTERS_EX = record
- cb: DWORD;
- PageFaultCount: DWORD;
- 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: SIZE_T;
- end;
- {$EXTERNALSYM _PROCESS_MEMORY_COUNTERS_EX}
- PROCESS_MEMORY_COUNTERS_EX = _PROCESS_MEMORY_COUNTERS_EX;
- {$EXTERNALSYM PROCESS_MEMORY_COUNTERS_EX}
- PPROCESS_MEMORY_COUNTERS_EX = ^PROCESS_MEMORY_COUNTERS_EX;
- {$EXTERNALSYM PPROCESS_MEMORY_COUNTERS_EX}
- TProcessMemoryCountersEx = PROCESS_MEMORY_COUNTERS_EX;
- function GetProcessMemoryInfo(Process: HANDLE;
- var ppsmemCounters: PROCESS_MEMORY_COUNTERS; cb: DWORD): BOOL; stdcall;
- {$EXTERNALSYM GetProcessMemoryInfo}
- type
- _PERFORMANCE_INFORMATION = record
- cb: DWORD;
- 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: SIZE_T;
- HandleCount: DWORD;
- ProcessCount: DWORD;
- ThreadCount: DWORD;
- end;
- {$EXTERNALSYM _PERFORMANCE_INFORMATION}
- PERFORMANCE_INFORMATION = _PERFORMANCE_INFORMATION;
- {$EXTERNALSYM PERFORMANCE_INFORMATION}
- PPERFORMANCE_INFORMATION = ^PERFORMANCE_INFORMATION;
- {$EXTERNALSYM PPERFORMANCE_INFORMATION}
- TPerformanceInformation = PERFORMANCE_INFORMATION;
- PPerformanceInformation = PPERFORMANCE_INFORMATION;
- { MVB:
- Please note that this function, unlike what the Platform SDK documents, is _not_ available for Windows 2000!!!
- It is available starting with Windows XP and Windows.NET Server.
- If needed, you can relatively easily clone the functionality of this function by using the performance monitor
- API (either through the HKEY_PERFORMANCE_DATA registry interface or using the Performance Data Helper API)
- }
- function GetPerformanceInfo(pPerformanceInformation: PPERFORMANCE_INFORMATION;
- cb: DWORD): BOOL; stdcall;
- {$EXTERNALSYM GetPerformanceInfo}
- type
- _ENUM_PAGE_FILE_INFORMATION = record
- cb: DWORD;
- Reserved: DWORD;
- TotalSize: SIZE_T;
- TotalInUse: SIZE_T;
- PeakUsage: SIZE_T;
- end;
- {$EXTERNALSYM _ENUM_PAGE_FILE_INFORMATION}
- ENUM_PAGE_FILE_INFORMATION = _ENUM_PAGE_FILE_INFORMATION;
- {$EXTERNALSYM ENUM_PAGE_FILE_INFORMATION}
- PENUM_PAGE_FILE_INFORMATION = ^ENUM_PAGE_FILE_INFORMATION;
- TEnumPageFileInformation = ENUM_PAGE_FILE_INFORMATION;
- PEnumPageFileInformation = PENUM_PAGE_FILE_INFORMATION;
- type
- PENUM_PAGE_FILE_CALLBACKW = function(pContext: LPVOID;
- pPageFileInfo: PENUM_PAGE_FILE_INFORMATION; lpFilename: LPCWSTR): BOOL; stdcall;
- {$EXTERNALSYM PENUM_PAGE_FILE_CALLBACKW}
- PENUM_PAGE_FILE_CALLBACKA = function(pContext: LPVOID;
- pPageFileInfo: PENUM_PAGE_FILE_INFORMATION; lpFilename: LPCSTR): BOOL; stdcall;
- {$EXTERNALSYM PENUM_PAGE_FILE_CALLBACKA}
- {$IFDEF UNICODE}
- PENUM_PAGE_FILE_CALLBACK = PENUM_PAGE_FILE_CALLBACKW;
- {$EXTERNALSYM PENUM_PAGE_FILE_CALLBACK}
- {$ELSE}
- PENUM_PAGE_FILE_CALLBACK = PENUM_PAGE_FILE_CALLBACKA;
- {$EXTERNALSYM PENUM_PAGE_FILE_CALLBACK}
- {$ENDIF UNICODE}
- function EnumPageFilesW(pCallBackRoutine: PENUM_PAGE_FILE_CALLBACKW; pContext: LPVOID): BOOL; stdcall;
- {$EXTERNALSYM EnumPageFilesW}
- function EnumPageFilesA(pCallBackRoutine: PENUM_PAGE_FILE_CALLBACKA; pContext: LPVOID): BOOL; stdcall;
- {$EXTERNALSYM EnumPageFilesA}
- function EnumPageFiles(pCallBackRoutine: PENUM_PAGE_FILE_CALLBACK; pContext: LPVOID): BOOL; stdcall;
- {$EXTERNALSYM EnumPageFiles}
- function GetProcessImageFileNameA(hProcess: HANDLE; lpImageFileName: LPSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetProcessImageFileNameA}
- function GetProcessImageFileNameW(hProcess: HANDLE; lpImageFileName: LPWSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetProcessImageFileNameW}
- function GetProcessImageFileName(hProcess: HANDLE; lpImageFileName: LPTSTR;
- nSize: DWORD): DWORD; stdcall;
- {$EXTERNALSYM GetProcessImageFileName}
- implementation
- uses
- JwaWinDLLNames;
- {$IFDEF DYNAMIC_LINK}
- var
- _EnumProcesses: Pointer;
- function EnumProcesses;
- begin
- GetProcedureAddress(_EnumProcesses, PsapiLib, 'EnumProcesses');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_EnumProcesses]
- end;
- end;
- var
- _EnumProcessModules: Pointer;
- function EnumProcessModules;
- begin
- GetProcedureAddress(_EnumProcessModules, PsapiLib, 'EnumProcessModules');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_EnumProcessModules]
- end;
- end;
- var
- _GetModuleBaseNameA: Pointer;
- function GetModuleBaseNameA;
- begin
- GetProcedureAddress(_GetModuleBaseNameA, PsapiLib, 'GetModuleBaseNameA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetModuleBaseNameA]
- end;
- end;
- var
- _GetModuleBaseNameW: Pointer;
- function GetModuleBaseNameW;
- begin
- GetProcedureAddress(_GetModuleBaseNameW, PsapiLib, 'GetModuleBaseNameW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetModuleBaseNameW]
- end;
- end;
- var
- _GetModuleBaseName: Pointer;
- function GetModuleBaseName;
- begin
- GetProcedureAddress(_GetModuleBaseName, PsapiLib, 'GetModuleBaseName' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetModuleBaseName]
- end;
- end;
- var
- _GetModuleFileNameExA: Pointer;
- function GetModuleFileNameExA;
- begin
- GetProcedureAddress(_GetModuleFileNameExA, PsapiLib, 'GetModuleFileNameExA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetModuleFileNameExA]
- end;
- end;
- var
- _GetModuleFileNameExW: Pointer;
- function GetModuleFileNameExW;
- begin
- GetProcedureAddress(_GetModuleFileNameExW, PsapiLib, 'GetModuleFileNameExW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetModuleFileNameExW]
- end;
- end;
- var
- _GetModuleFileNameEx: Pointer;
- function GetModuleFileNameEx;
- begin
- GetProcedureAddress(_GetModuleFileNameEx, PsapiLib, 'GetModuleFileNameEx' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetModuleFileNameEx]
- end;
- end;
- var
- _GetModuleInformation: Pointer;
- function GetModuleInformation;
- begin
- GetProcedureAddress(_GetModuleInformation, PsapiLib, 'GetModuleInformation');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetModuleInformation]
- end;
- end;
- var
- _EmptyWorkingSet: Pointer;
- function EmptyWorkingSet;
- begin
- GetProcedureAddress(_EmptyWorkingSet, PsapiLib, 'EmptyWorkingSet');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_EmptyWorkingSet]
- end;
- end;
- var
- _QueryWorkingSet: Pointer;
- function QueryWorkingSet;
- begin
- GetProcedureAddress(_QueryWorkingSet, PsapiLib, 'QueryWorkingSet');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_QueryWorkingSet]
- end;
- end;
- var
- _InitializeProcessForWsWatch: Pointer;
- function InitializeProcessForWsWatch;
- begin
- GetProcedureAddress(_InitializeProcessForWsWatch, PsapiLib, 'InitializeProcessForWsWatch');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_InitializeProcessForWsWatch]
- end;
- end;
- var
- _GetWsChanges: Pointer;
- function GetWsChanges;
- begin
- GetProcedureAddress(_GetWsChanges, PsapiLib, 'GetWsChanges');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetWsChanges]
- end;
- end;
- var
- _GetMappedFileNameW: Pointer;
- function GetMappedFileNameW;
- begin
- GetProcedureAddress(_GetMappedFileNameW, PsapiLib, 'GetMappedFileNameW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetMappedFileNameW]
- end;
- end;
- var
- _GetMappedFileNameA: Pointer;
- function GetMappedFileNameA;
- begin
- GetProcedureAddress(_GetMappedFileNameA, PsapiLib, 'GetMappedFileNameA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetMappedFileNameA]
- end;
- end;
- var
- _GetMappedFileName: Pointer;
- function GetMappedFileName;
- begin
- GetProcedureAddress(_GetMappedFileName, PsapiLib, 'GetMappedFileName' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetMappedFileName]
- end;
- end;
- var
- _EnumDeviceDrivers: Pointer;
- function EnumDeviceDrivers;
- begin
- GetProcedureAddress(_EnumDeviceDrivers, PsapiLib, 'EnumDeviceDrivers');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_EnumDeviceDrivers]
- end;
- end;
- var
- _GetDeviceDriverBaseNameA: Pointer;
- function GetDeviceDriverBaseNameA;
- begin
- GetProcedureAddress(_GetDeviceDriverBaseNameA, PsapiLib, 'GetDeviceDriverBaseNameA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetDeviceDriverBaseNameA]
- end;
- end;
- var
- _GetDeviceDriverBaseNameW: Pointer;
- function GetDeviceDriverBaseNameW;
- begin
- GetProcedureAddress(_GetDeviceDriverBaseNameW, PsapiLib, 'GetDeviceDriverBaseNameW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetDeviceDriverBaseNameW]
- end;
- end;
- var
- _GetDeviceDriverBaseName: Pointer;
- function GetDeviceDriverBaseName;
- begin
- GetProcedureAddress(_GetDeviceDriverBaseName, PsapiLib, 'GetDeviceDriverBaseName' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetDeviceDriverBaseName]
- end;
- end;
- var
- _GetDeviceDriverFileNameA: Pointer;
- function GetDeviceDriverFileNameA;
- begin
- GetProcedureAddress(_GetDeviceDriverFileNameA, PsapiLib, 'GetDeviceDriverFileNameA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetDeviceDriverFileNameA]
- end;
- end;
- var
- _GetDeviceDriverFileNameW: Pointer;
- function GetDeviceDriverFileNameW;
- begin
- GetProcedureAddress(_GetDeviceDriverFileNameW, PsapiLib, 'GetDeviceDriverFileNameW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetDeviceDriverFileNameW]
- end;
- end;
- var
- _GetDeviceDriverFileName: Pointer;
- function GetDeviceDriverFileName;
- begin
- GetProcedureAddress(_GetDeviceDriverFileName, PsapiLib, 'GetDeviceDriverFileName' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetDeviceDriverFileName]
- end;
- end;
- var
- _GetProcessMemoryInfo: Pointer;
- function GetProcessMemoryInfo;
- begin
- GetProcedureAddress(_GetProcessMemoryInfo, PsapiLib, 'GetProcessMemoryInfo');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetProcessMemoryInfo]
- end;
- end;
- var
- _GetPerformanceInfo: Pointer;
- function GetPerformanceInfo;
- begin
- GetProcedureAddress(_GetPerformanceInfo, PsapiLib, 'GetPerformanceInfo');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetPerformanceInfo]
- end;
- end;
- var
- _EnumPageFilesW: Pointer;
- function EnumPageFilesW;
- begin
- GetProcedureAddress(_EnumPageFilesW, PsapiLib, 'EnumPageFilesA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_EnumPageFilesW]
- end;
- end;
- var
- _EnumPageFilesA: Pointer;
- function EnumPageFilesA;
- begin
- GetProcedureAddress(_EnumPageFilesA, PsapiLib, 'EnumPageFilesW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_EnumPageFilesA]
- end;
- end;
- var
- _EnumPageFiles: Pointer;
- function EnumPageFiles;
- begin
- GetProcedureAddress(_EnumPageFiles, PsapiLib, 'EnumPageFiles' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_EnumPageFiles]
- end;
- end;
- var
- _GetProcessImageFileNameA: Pointer;
- function GetProcessImageFileNameA;
- begin
- GetProcedureAddress(_GetProcessImageFileNameA, PsapiLib, 'GetProcessImageFileNameA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetProcessImageFileNameA]
- end;
- end;
- var
- _GetProcessImageFileNameW: Pointer;
- function GetProcessImageFileNameW;
- begin
- GetProcedureAddress(_GetProcessImageFileNameW, PsapiLib, 'GetProcessImageFileNameW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetProcessImageFileNameW]
- end;
- end;
- var
- _GetProcessImageFileName: Pointer;
- function GetProcessImageFileName;
- begin
- GetProcedureAddress(_GetProcessImageFileName, PsapiLib, 'GetProcessImageFileName' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetProcessImageFileName]
- end;
- end;
- {$ELSE}
- function EnumProcesses; external PsapiLib name 'EnumProcesses';
- function EnumProcessModules; external PsapiLib name 'EnumProcessModules';
- function GetModuleBaseNameA; external PsapiLib name 'GetModuleBaseNameA';
- function GetModuleBaseNameW; external PsapiLib name 'GetModuleBaseNameW';
- function GetModuleBaseName; external PsapiLib name 'GetModuleBaseName' + AWSuffix;
- function GetModuleFileNameExA; external PsapiLib name 'GetModuleFileNameExA';
- function GetModuleFileNameExW; external PsapiLib name 'GetModuleFileNameExW';
- function GetModuleFileNameEx; external PsapiLib name 'GetModuleFileNameEx' + AWSuffix;
- function GetModuleInformation; external PsapiLib name 'GetModuleInformation';
- function EmptyWorkingSet; external PsapiLib name 'EmptyWorkingSet';
- function QueryWorkingSet; external PsapiLib name 'QueryWorkingSet';
- function InitializeProcessForWsWatch; external PsapiLib name 'InitializeProcessForWsWatch';
- function GetWsChanges; external PsapiLib name 'GetWsChanges';
- function GetMappedFileNameW; external PsapiLib name 'GetMappedFileNameW';
- function GetMappedFileNameA; external PsapiLib name 'GetMappedFileNameA';
- function GetMappedFileName; external PsapiLib name 'GetMappedFileName' + AWSuffix;
- function EnumDeviceDrivers; external PsapiLib name 'EnumDeviceDrivers';
- function GetDeviceDriverBaseNameA; external PsapiLib name 'GetDeviceDriverBaseNameA';
- function GetDeviceDriverBaseNameW; external PsapiLib name 'GetDeviceDriverBaseNameW';
- function GetDeviceDriverBaseName; external PsapiLib name 'GetDeviceDriverBaseName' + AWSuffix;
- function GetDeviceDriverFileNameA; external PsapiLib name 'GetDeviceDriverFileNameA';
- function GetDeviceDriverFileNameW; external PsapiLib name 'GetDeviceDriverFileNameW';
- function GetDeviceDriverFileName; external PsapiLib name 'GetDeviceDriverFileName' + AWSuffix;
- function GetProcessMemoryInfo; external PsapiLib name 'GetProcessMemoryInfo';
- function GetPerformanceInfo; external PsapiLib name 'GetPerformanceInfo';
- function EnumPageFilesW; external PsapiLib name 'EnumPageFilesA';
- function EnumPageFilesA; external PsapiLib name 'EnumPageFilesW';
- function EnumPageFiles; external PsapiLib name 'EnumPageFiles' + AWSuffix;
- function GetProcessImageFileNameA; external PsapiLib name 'GetProcessImageFileNameA';
- function GetProcessImageFileNameW; external PsapiLib name 'GetProcessImageFileNameW';
- function GetProcessImageFileName; external PsapiLib name 'GetProcessImageFileName' + AWSuffix;
- {$ENDIF DYNAMIC_LINK}
- end.
|