| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chrome/browser/task_manager/os_resource_win.h" |
| |
| namespace task_manager { |
| |
| void GetWinGDIHandles(base::ProcessHandle process, |
| size_t* current, |
| size_t* peak) { |
| *current = 0; |
| *peak = 0; |
| // Get a handle to |process| that has PROCESS_QUERY_INFORMATION rights. |
| HANDLE current_process = GetCurrentProcess(); |
| HANDLE process_with_query_rights; |
| if (DuplicateHandle(current_process, process, current_process, |
| &process_with_query_rights, PROCESS_QUERY_INFORMATION, |
| false, 0)) { |
| *current = GetGuiResources(process_with_query_rights, GR_GDIOBJECTS); |
| *peak = GetGuiResources(process_with_query_rights, GR_GDIOBJECTS_PEAK); |
| CloseHandle(process_with_query_rights); |
| } |
| } |
| |
| void GetWinUSERHandles(base::ProcessHandle process, |
| size_t* current, |
| size_t* peak) { |
| *current = 0; |
| *peak = 0; |
| // Get a handle to |process| that has PROCESS_QUERY_INFORMATION rights. |
| HANDLE current_process = GetCurrentProcess(); |
| HANDLE process_with_query_rights; |
| if (DuplicateHandle(current_process, process, current_process, |
| &process_with_query_rights, PROCESS_QUERY_INFORMATION, |
| false, 0)) { |
| *current = GetGuiResources(process_with_query_rights, GR_USEROBJECTS); |
| *peak = GetGuiResources(process_with_query_rights, GR_USEROBJECTS_PEAK); |
| CloseHandle(process_with_query_rights); |
| } |
| } |
| |
| } // namespace task_manager |