blob: 0ca678757089ec26db7aa73ae19d6bd8fb1b9b57 [file] [log] [blame]
// 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