Index: remoting/host/desktop_process.cc |
diff --git a/remoting/host/desktop_process.cc b/remoting/host/desktop_process.cc |
index e3ff18ceba7d485822b52a1d994e63f75434d826..5cec219bf4fc3859b6cc9ad99584bd997607751d 100644 |
--- a/remoting/host/desktop_process.cc |
+++ b/remoting/host/desktop_process.cc |
@@ -25,6 +25,10 @@ |
#include "remoting/host/desktop_environment.h" |
#include "remoting/host/desktop_session_agent.h" |
+#if defined(OS_WIN) |
+#include "base/win/windows_version.h" |
+#endif // defined(OS_WIN) |
+ |
namespace remoting { |
DesktopProcess::DesktopProcess( |
@@ -61,6 +65,22 @@ void DesktopProcess::InjectSas() { |
daemon_channel_->Send(new ChromotingDesktopDaemonMsg_InjectSas()); |
} |
+void DesktopProcess::LockWorkStation() { |
+ DCHECK(caller_task_runner_->BelongsToCurrentThread()); |
+#if defined(OS_WIN) |
+ if (base::win::OSInfo::GetInstance()->version_type() == |
+ base::win::VersionType::SUITE_HOME) { |
+ return; |
+ } |
+ |
+ if (!::LockWorkStation()) { |
+ LOG(ERROR) << "LockWorkStation() failed: " << ::GetLastError(); |
+ } |
+#else |
+ NOTREACHED(); |
+#endif // defined(OS_WIN) |
+} |
+ |
bool DesktopProcess::OnMessageReceived(const IPC::Message& message) { |
DCHECK(caller_task_runner_->BelongsToCurrentThread()); |