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); |
} |