- add sources.
[platform/framework/web/crosswalk.git] / src / sandbox / win / src / acl.h
1 // Copyright (c) 2012 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_ACL_H_
6 #define SANDBOX_SRC_ACL_H_
7
8 #include <windows.h>
9
10 #include "base/memory/scoped_ptr.h"
11 #include "sandbox/win/src/sid.h"
12
13 namespace sandbox {
14
15 // Returns the default dacl from the token passed in.
16 bool GetDefaultDacl(HANDLE token,
17                     scoped_ptr_malloc<TOKEN_DEFAULT_DACL>* default_dacl);
18
19 // Appends an ACE represented by |sid| and |access| to |old_dacl|. If the
20 // function succeeds, new_dacl contains the new dacl and must be freed using
21 // LocalFree.
22 bool AddSidToDacl(const Sid& sid, ACL* old_dacl, ACCESS_MASK access,
23                   ACL** new_dacl);
24
25 // Adds and ACE represented by |sid| and |access| to the default dacl present
26 // in the token.
27 bool AddSidToDefaultDacl(HANDLE token, const Sid& sid, ACCESS_MASK access);
28
29 // Adds an ACE represented by the user sid and |access| to the default dacl
30 // present in the token.
31 bool AddUserSidToDefaultDacl(HANDLE token, ACCESS_MASK access);
32
33 // Adds an ACE represented by |known_sid| and |access| to the dacl of the kernel
34 // object referenced by |object|.
35 bool AddKnownSidToKernelObject(HANDLE object, const Sid& sid,
36                                ACCESS_MASK access);
37
38 }  // namespace sandbox
39
40
41 #endif  // SANDBOX_SRC_ACL_H_