如何使用特定访问权限启动子进程

时间:2013-12-13 07:33:04

标签: c++ c windows winapi

如何通过具有特定访问权限的WinAPI从当前应用程序启动子进程(在我的情况下为PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE | PROCESS_QUERY_INFORMATION)?
CreateProcessShellExecuteEx函数的情况下,我没有看到任何相关参数。或者我应该像往常一样创建流程,然后使用带有所需标志的函数OpenProcess

1 个答案:

答案 0 :(得分:0)

如果您希望父进程具有对新进程句柄的特定访问权限,则可能更容易使用OpenProcess()

HANDLE hProcess = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pid);
if (!hProcess)
    return ::GetLastError();

// get process token
HANDLE hToken = NULL;
if (::OpenProcessToken(hProcess, TOKEN_QUERY, &hToken))
    ...