Index: sandbox/win/src/lpc_dispatcher.h |
diff --git a/sandbox/win/src/lpc_dispatcher.h b/sandbox/win/src/lpc_dispatcher.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8e5e0b0d6c067ea3bf2997a644b168f00990c969 |
--- /dev/null |
+++ b/sandbox/win/src/lpc_dispatcher.h |
@@ -0,0 +1,36 @@ |
+// Copyright (c) 2015 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. |
+ |
+#ifndef SANDBOX_SRC_LPC_DISPATCHER_H_ |
+#define SANDBOX_SRC_LPC_DISPATCHER_H_ |
+ |
+#include "base/basictypes.h" |
+#include "base/strings/string16.h" |
+#include "sandbox/win/src/crosscall_server.h" |
+#include "sandbox/win/src/sandbox_policy_base.h" |
+ |
+namespace sandbox { |
+ |
+// This class handles LPC related IPC calls. |
+class LpcDispatcher : public Dispatcher { |
+ public: |
+ explicit LpcDispatcher(PolicyBase* policy_base); |
+ ~LpcDispatcher() override {} |
+ |
+ // Dispatcher interface. |
+ bool SetupService(InterceptionManager* manager, int service) override; |
+ |
+private: |
+ // Processes IPC requests coming from calls to NtAlpcConnectPort in the |
+ // target. |
+ bool AlpcConnectPort(IPCInfo* ipc, |
+ base::string16* name); |
+ |
+ PolicyBase* policy_base_; |
+ DISALLOW_COPY_AND_ASSIGN(LpcDispatcher); |
+}; |
+ |
+} // namespace sandbox |
+ |
+#endif // SANDBOX_SRC_LPC_DISPATCHER_H_ |