1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "mojo/embedder/platform_handle_utils.h" 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include <windows.h> 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/logging.h" 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace mojo { 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace embedder { 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)ScopedPlatformHandle DuplicatePlatformHandle(PlatformHandle platform_handle) { 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DCHECK(platform_handle.is_valid()); 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) HANDLE new_handle; 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) if (!DuplicateHandle(GetCurrentProcess(), 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) platform_handle.handle, 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) GetCurrentProcess(), 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) &new_handle, 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 0, 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TRUE, 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DUPLICATE_SAME_ACCESS)) 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return ScopedPlatformHandle(); 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DCHECK_NE(new_handle, INVALID_HANDLE_VALUE); 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return ScopedPlatformHandle(PlatformHandle(new_handle)); 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace embedder 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace mojo 32