OpenProcess函数返回现有进程对象的句柄。
手柄OpenProcess
DWORD 【dwDesiredAccess】, | //访问标志 |
BOOL 【bInheritHandle】, | //处理继承标志 |
DWORD 【dwProcessId】 | //进程标识符en |
); |
参数
【dwDesiredAccess】
指定对进程对象的访问。对于支持安全检查的操作系统,将针对目标进程的任何安全描述符检查此访问。除了STANDARD_RIGHTS_REQUIRED访问标志之外,还可以指定以下访问标志的任何组合:
访问 | 描述 |
PROCESS_ALL_ACCESS | 指定进程对象的所有可能的访问标志。 |
PROCESS_CREATE_PROCESS | 内部使用 |
PROCESS_CREATE_THREAD | 启用在CreateRemoteThread函数中使用进程句柄来创建一个线程。 |
PROCESS_DUP_HANDLE | 使用DuplicateHandle功能中的进程句柄作为源或目标进程来复制句柄。 |
PROCESS_QUERY_INFORMATION | 启用GetExitCodeProcess和GetPriorityClass功能中的进程句柄来读取进程对象中的信息。 |
PROCESS_SET_INFORMATION | 启用SetPriorityClass功能中的进程句柄来设置进程的优先级。 |
PROCESS_TERMINATE | 启用TerminateProcess功能中的进程句柄来终止进程。 |
PROCESS_VM_OPERATION | 启用VirtualProtectEx和WriteProcessMemory功能中的进程句柄来修改进程的虚拟内存。 |
PROCESS_VM_READ | 启用ReadProcessMemory功能中的进程句柄从进程的虚拟内存读取。 |
PROCESS_VM_WRITE | 启用WriteProcessMemory功能中的进程句柄来写入进程的虚拟内存。 |
SYNCHRONIZE | 仅Windows NT:启用使用任何等待功能中的进程句柄等待进程终止。 |
【bInheritHandle】
指定返回的句柄是否可以由当前进程创建的新进程继承。如果为TRUE,则该句柄是可继承的。
【dwProcessId】
指定要打开的进程的进程标识符。
返回值
如果函数成功,则返回值是指定进程的打开句柄。
如果函数失败,返回值为NULL。要获取扩展错误信息,请调用GetLastError.
备注
OpenProcess函数返回的句柄可用于需要处理进程的任何函数,例如等待功能,只要请求了适当的访问权限。
完成手柄后,请务必使用CloseHandle功能关闭。
也可以看看
CloseHandle, CreateProcess, CreateRemoteThread, DuplicateHandle, GetCurrentProcess, GetCurrentProcessId, GetExitCodeProcess, GetPriorityClass, ReadProcessMemory, SetPriorityClass, TerminateProcess, VirtualProtectEx, WriteProcessMemory