summaryrefslogtreecommitdiffstats
path: root/base/process_util_win.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/process_util_win.cc')
-rw-r--r--base/process_util_win.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/base/process_util_win.cc b/base/process_util_win.cc
index 45a23e8..265c26f 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);
}