OLD | NEW |
| (Empty) |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef SANDBOX_SRC_NAMED_PIPE_POLICY_H__ | |
6 #define SANDBOX_SRC_NAMED_PIPE_POLICY_H__ | |
7 | |
8 #include <string> | |
9 | |
10 #include "base/strings/string16.h" | |
11 #include "sandbox/win/src/crosscall_server.h" | |
12 #include "sandbox/win/src/policy_low_level.h" | |
13 #include "sandbox/win/src/sandbox_policy.h" | |
14 | |
15 namespace sandbox { | |
16 | |
17 enum EvalResult; | |
18 | |
19 // This class centralizes most of the knowledge related to named pipe creation. | |
20 class NamedPipePolicy { | |
21 public: | |
22 // Creates the required low-level policy rules to evaluate a high-level. | |
23 // policy rule for named pipe creation | |
24 // 'name' is the named pipe to be created | |
25 // 'semantics' is the desired semantics. | |
26 // 'policy' is the policy generator to which the rules are going to be added. | |
27 static bool GenerateRules(const wchar_t* name, | |
28 TargetPolicy::Semantics semantics, | |
29 LowLevelPolicy* policy); | |
30 | |
31 // Processes a 'CreateNamedPipeW()' request from the target. | |
32 static DWORD CreateNamedPipeAction(EvalResult eval_result, | |
33 const ClientInfo& client_info, | |
34 const base::string16 &name, | |
35 DWORD open_mode, DWORD pipe_mode, | |
36 DWORD max_instances, | |
37 DWORD out_buffer_size, | |
38 DWORD in_buffer_size, | |
39 DWORD default_timeout, HANDLE* pipe); | |
40 }; | |
41 | |
42 } // namespace sandbox | |
43 | |
44 | |
45 #endif // SANDBOX_SRC_NAMED_PIPE_POLICY_H__ | |
OLD | NEW |