www.pudn.com > ProcessSpy.rar > define.pas
unit define;
interface
uses
Windows;
type
//进程有关的函数与结构
TProcessInfo = packed record
dwSize : DWORD ; // 指定结构的大小,
// 在调用Process32First前需要设置,否则将会失败
cntUsage : DWORD ; // 引用计数
th32ProcessID : DWORD ; // 进程号
th32DefaultHeapID : DWORD ; // 进程的堆号,只对Toolhelp函数有意义,并不是一个有效句柄
th32ModuleID : DWORD ; // 进程的模块号,只对Toolhelp函数有意义,并不是一个有效句柄
cntThreads : DWORD ; // 进程中包括的线程数
th32ParentProcessID: DWORD ; // 进程的母进程
pcPriClassBase : Longint; // 进程的线程的基优先级,所有此进程创建的线程将基于此优先级
dwFlags : DWORD ; // 保留,没有使用
szExeFile: array[0..255] of Char; // 进程所对应的文件及路径
end;
//相关函数
//function Module32First(hSnapshot: THandle; var lpme: TModuleEntry32): BOOL; //同进程说明
//function Module32Next(hSnapshot: THandle; var lpme: TModuleEntry32): BOOL;
//模块有关的函数和结构
TModuleInfo = record
dwSize : DWORD; // 指定结构的大小,
// 在调用Module32First前需要设置,否则将会失败
th32ModuleID : DWORD; // 模块号
th32ProcessID: DWORD; // 包含本模块的进程号
GlblcntUsage : DWORD; // 本模块的全局引用计数
ProccntUsage : DWORD; // 包含模块的进程上下文中的模块引用计数
modBaseAddr : PBYTE; // 模块基地址
modBaseSize : DWORD; // 模块大小(字节数)
hModule : HMODULE; // 包含模块的进程上下文中的hModule句柄
// 注意:modBaseAddr 与 hModule 只在th32ProcessID的
// 上下文才有效
ProcessId :DWORD ;
szModule: array[0..255] of Char; //模块名
szExePath: array[0..255] of Char; //模块对应的文件名和路径
end;
//相关函数
//function Module32First(hSnapshot: THandle; var lpme: TModuleEntry32): BOOL;
//function Module32Next(hSnapshot: THandle; var lpme: TModuleEntry32): BOOL;
//线程有关的函数和结构
TThreadInfo = record
dwSize : DWORD; // 指定结构的大小,
// 在调用Thread32First前需要设置,否则将会失败
cntUsage : DWORD; // 线程引用计数
th32ThreadID : DWORD; // 线程号
th32OwnerProcessID: DWORD; // 拥有线程的进程号
tpBasePri : Longint; // 在线程创建时的初始优先级
tpDeltaPri : Longint; // 现在线程的优先级的相对于初始值的改变量
dwFlags : DWORD; // 保留,没有使用
end;
//相关函数
//function Thread32First(hSnapshot: THandle; var lpte: TThreadEntry32): BOOL; stdcall;
//function Thread32Next(hSnapshot: THandle; var lpte: TThreadENtry32): BOOL; stdcall;
//堆有关的函数和结构
THeapInfo = record
dwSize : DWORD; // 指定结构的大小,
// 在调用Heap32First前需要设置,否则将会失败
hHandle : THandle; // 堆的句柄
dwAddress : DWORD; // 堆起始位置的线性地址
dwBlockSize : DWORD; // 堆的大小(字节数)
dwFlags : DWORD; // 标志,为以下值
// LF32_FIXED 堆内存块的位置是固定的
// LF32_FREE 堆内存块没有使用
// LF32_MOVEABLE 堆内存块的位置是可移动的
dwLockCount : DWORD; // 堆的锁定计数,每次对堆的执行GlobalLock
// 或者LocalLock都将使它增1
dwResvd : DWORD; // 保留,没有使用
th32ProcessID: DWORD; // 拥有本堆的进程号,
// 这个ID是可以被其他WIN32 API使用的。
th32HeapID : DWORD; // 堆号,只能在ToolHelp API中内部使用,
// 并不是有效的句柄
end;
//相关函数
//function Heap32First(var lphe: THeapEntry32; th32ProcessID, th32HeapID: DWORD): BOOL;
//function Heap32Next(var lphe: THeapEntry32): BOOL;
implementation
end.