C++进程相关知识总结

_getpid()

头文件:process.h
获取当前进程ID;

OpenProcess()

打开一个已存在的进程对象吗,返回进程句柄;

HANDLE OpenProcess(
DWORD dwDesiredAccess, //渴望得到的访问权限(标志)
BOOL bInheritHandle, // 是否继承句柄
DWORD dwProcessId// 进程标示符
);

参数说明:

dwDesiredAccess

获取的权限,可分为以下几种:
PROCESS_ALL_ACCESS:获取所有权限
PROCESS_CREATE_PROCESS:创建进程
PROCESS_CREATE_THREAD:创建线程
PROCESS_DUP_HANDLE:使用DuplicateHandle()函数复制一个新句柄
PROCESS_QUERY_INFORMATION:获取进程的令牌、退出码和优先级等信息
PROCESS_QUERY_LIMITED_INFORMATION:获取进程特定的某个信息
PROCESS_SET_INFORMATION:设置进程的某种信息
PROCESS_SET_QUOTA:使用SetProcessWorkingSetSize函数设置内存限制
PROCESS_SUSPEND_RESUME:暂停或者恢复一个进程
PROCESS_TERMINATE:使用Terminate函数终止进程
PROCESS_VM_OPERATION:在进程的地址空间执行操作
PROCESS_VM_READ:使用ReadProcessMemory函数在进程中读取内存
PROCESS_VM_WRITE:使用WriteProcessMemory函数在进程中写入内存
SYNCHRONIZE:使用wait函数等待进程终止

bInheritHandle

TRUE或者FALSE,是否继承句柄;

dwProcessId

pid,进程ID;

返回值:

如成功,返回值为指定进程的句柄。
如失败,返回值为空,可调用GetLastError获得错误代码。

GetProcessMemoryInf()

头文件:Psapi.h
GetProcessMemoryInfo(
HANDLE Process,
PROCESS_MEMORY_COUNTERS* psmemCounters,
DWORD cb
);

参数说明:

Process

是欲获取内存使用情况的进程句柄。

psmemCounters

是返回内存使用情况的结构体。

cb

psmemCounters结构体的大小。

PS:

PPROCESS_MEMORY_COUNTERS

PageFaultCount
Number of page faults. // 缺页中断次数
PeakWorkingSetSize
Peak working set size, in bytes. // 使用内存高峰
WorkingSetSize
Current working set size, in bytes. // 当前使用的内存
QuotaPeakPagedPoolUsage
Peak paged pool usage, in bytes. // 使用页面缓存池高峰
QuotaPagedPoolUsage
Current paged pool usage, in bytes.// 使用页面缓存池
QuotaPeakNonPagedPoolUsage
Peak nonpaged pool usage, in bytes.// 使用非分页缓存池高峰
QuotaNonPagedPoolUsage
Current nonpaged pool usage, in bytes.// 使用非分页缓存池
PagefileUsage
Current space allocated for the pagefile, in bytes.Those pages may or may not be in memory.// 使用分页文件
PeakPagefileUsage
Peak space allocated for the pagefile, in bytes.// 使用分页文件高峰

posted @ 2020-09-19 16:41  Lounaver  阅读(470)  评论(0)    收藏  举报