| Index: base/process_util_win.cc
|
| diff --git a/base/process_util_win.cc b/base/process_util_win.cc
|
| index 13fec9aab8c1d2d60c390bb08f24f306c0beabcd..4a896c8077cebdddcff1fb5e1a579fd6944557a8 100644
|
| --- a/base/process_util_win.cc
|
| +++ b/base/process_util_win.cc
|
| @@ -34,6 +34,7 @@ ProcessHandle GetCurrentProcessHandle() {
|
| }
|
|
|
| bool OpenProcessHandle(ProcessId pid, ProcessHandle* handle) {
|
| + // TODO(phajdan.jr): Take even more permissions out of this list.
|
| ProcessHandle result = OpenProcess(PROCESS_DUP_HANDLE |
|
| PROCESS_TERMINATE |
|
| PROCESS_QUERY_INFORMATION |
|
| @@ -47,6 +48,21 @@ bool OpenProcessHandle(ProcessId pid, ProcessHandle* handle) {
|
| return true;
|
| }
|
|
|
| +bool OpenPrivilegedProcessHandle(ProcessId pid, ProcessHandle* handle) {
|
| + ProcessHandle result = OpenProcess(PROCESS_DUP_HANDLE |
|
| + PROCESS_TERMINATE |
|
| + PROCESS_QUERY_INFORMATION |
|
| + PROCESS_VM_READ |
|
| + SYNCHRONIZE,
|
| + FALSE, pid);
|
| +
|
| + if (result == INVALID_HANDLE_VALUE)
|
| + return false;
|
| +
|
| + *handle = result;
|
| + return true;
|
| +}
|
| +
|
| void CloseProcessHandle(ProcessHandle process) {
|
| CloseHandle(process);
|
| }
|
|
|