| Index: remoting/host/daemon_process_win.cc | 
| diff --git a/remoting/host/daemon_process_win.cc b/remoting/host/daemon_process_win.cc | 
| index 378eb520a812bf7e91467c726b1f14d31485f548..84c7191ec2c3c7e3180f004f36da44fa74938ace 100644 | 
| --- a/remoting/host/daemon_process_win.cc | 
| +++ b/remoting/host/daemon_process_win.cc | 
| @@ -10,6 +10,7 @@ | 
| #include "base/logging.h" | 
| #include "base/memory/ref_counted.h" | 
| #include "base/memory/scoped_ptr.h" | 
| +#include "base/process.h" | 
| #include "base/single_thread_task_runner.h" | 
| #include "base/time.h" | 
| #include "base/timer.h" | 
| @@ -108,15 +109,20 @@ bool DaemonProcessWin::OnDesktopSessionAgentAttached( | 
| base::ProcessHandle desktop_process, | 
| IPC::PlatformFileForTransit desktop_pipe) { | 
| // Prepare |desktop_process| handle for sending over to the network process. | 
| -  // |desktop_pipe| is a handle in the desktop process. It will be duplicated | 
| -  // by the network process directly from the desktop process. | 
| -  IPC::PlatformFileForTransit desktop_process_for_transit = | 
| -      IPC::GetFileHandleForProcess(desktop_process, network_process_, false); | 
| -  if (desktop_process_for_transit == IPC::InvalidPlatformFileForTransit()) { | 
| -    LOG(ERROR) << "Failed to duplicate the desktop process handle"; | 
| +  base::ProcessHandle desktop_process_for_transit; | 
| +  if (!DuplicateHandle(GetCurrentProcess(), | 
| +                       desktop_process, | 
| +                       network_process_, | 
| +                       &desktop_process_for_transit, | 
| +                       0, | 
| +                       FALSE, | 
| +                       DUPLICATE_SAME_ACCESS)) { | 
| +    LOG_GETLASTERROR(ERROR) << "Failed to duplicate the desktop process handle"; | 
| return false; | 
| } | 
|  | 
| +  // |desktop_pipe| is a handle in the desktop process. It will be duplicated | 
| +  // by the network process directly from the desktop process. | 
| SendToNetwork(new ChromotingDaemonNetworkMsg_DesktopAttached( | 
| terminal_id, desktop_process_for_transit, desktop_pipe)); | 
| return true; | 
|  |