PROCESS_ALL_ACCESS过程对象的所有可能的访问权限。Windows Server 2003和Windows XP:在Windows Server 2008和Windows Vista上,PROCESS_ALL_ACCESS标志的大小增加了。如果为Windows Server 2008和Windows Vista编译的应用程序在Windows Server 2003或Windows XP上运行,则PROCESS_ALL_ACCESS标志太大,并且指定此标志的函数失败,并显示ERROR_ACCESS_DENIED。为避免此问题,请指定操作所需的最小访问权限集。如果必须使用PROCESS_ALL_ACCESS,请将_WIN32_WINNT设置为应用程序所针对的最小操作系统(例如,#define _WIN32_WINNT _WIN32_WINNT_WINXP)。有关更多信息,请参见使用Windows标头。
PROCESS_CREATE_PROCESS(0x0080)创建进程所需。
PROCESS_CREATE_THREAD(0x0002)创建线程所需。
PROCESS_DUP_HANDLE(0x0040)使用DuplicateHandle复制句柄时需要。
PROCESS_QUERY_INFORMATION(0x0400)检索有关进程的某些信息所必需,例如其令牌,退出代码和优先级类(请参阅OpenProcessToken)。
PROCESS_QUERY_LIMITED_INFORMATION(0x1000)检索有关进程的某些信息所必需(请参阅GetExitCodeProcess,GetPriorityClass,IsProcessInJob,QueryFullProcessImageName)。具有PROCESS_QUERY_INFORMATION访问权限的句柄将自动授予PROCESS_QUERY_LIMITED_INFORMATION。Windows Server 2003和Windows XP:不支持此访问权限。
PROCESS_SET_INFORMATION(0x0200)设置有关进程的某些信息所必需,例如其优先级等级(请参阅SetPriorityClass)。
PROCESS_SET_QUOTA(0x0100)使用SetProcessWorkingSetSize设置内存限制所需。
PROCESS_SUSPEND_RESUME(0x0800)挂起或恢复过程所必需。
PROCESS_TERMINATE(0x0001)使用TerminateProcess终止进程所需。
PROCESS_VM_OPERATION(0x0008)在进程的地址空间上执行操作所需(请参阅VirtualProtectEx和WriteProcessMemory)。
PROCESS_VM_READ(0x0010)在使用ReadProcessMemory的进程中读取内存所需。
PROCESS_VM_WRITE(0x0020)在使用WriteProcessMemory的进程中写入内存所必需。
SYNCHRONIZE(0x00100000L)使用等待功能等待进程终止。