1f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// found in the LICENSE file.
4f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
5f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#ifndef SANDBOX_SRC_PROCESS_MITIGATIONS_WIN32K_DISPATCHER_H_
6f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#define SANDBOX_SRC_PROCESS_MITIGATIONS_WIN32K_DISPATCHER_H_
7f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "base/basictypes.h"
9f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#include "sandbox/win/src/sandbox_policy_base.h"
10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
11f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)namespace sandbox {
12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// This class sets up intercepts for the Win32K lockdown policy which is set
14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// on Windows 8 and beyond.
15f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)class ProcessMitigationsWin32KDispatcher : public Dispatcher {
16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) public:
17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  explicit ProcessMitigationsWin32KDispatcher(PolicyBase* policy_base);
18f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  ~ProcessMitigationsWin32KDispatcher() {}
19f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  // Dispatcher interface.
21f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  virtual bool SetupService(InterceptionManager* manager, int service);
22f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) private:
24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  PolicyBase* policy_base_;
25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
26f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(ProcessMitigationsWin32KDispatcher);
27f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)};
28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
29f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}  // namespace sandbox
30f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)#endif  // SANDBOX_SRC_PROCESS_MITIGATIONS_WIN32K_DISPATCHER_H_
32