ReactOS  0.4.14-dev-52-g6116262
sddl.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2003 Ulrich Czekalla for CodeWeavers
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 
19 #ifndef __SDDL_H__
20 #define __SDDL_H__
21 
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /*
28  * SDDL Version information
29  */
30 #define SDDL_REVISION_1 1
31 #define SDDL_REVISION SDDL_REVISION_1
32 
33 /*
34  * SDDL Component tags
35  */
36 #define SDDL_OWNER TEXT("O")
37 #define SDDL_GROUP TEXT("G")
38 #define SDDL_DACL TEXT("D")
39 #define SDDL_SACL TEXT("S")
40 
41 /*
42  * SDDL Security descriptor controls
43  */
44 #define SDDL_PROTECTED TEXT("P")
45 #define SDDL_AUTO_INHERIT_REQ TEXT("AR")
46 #define SDDL_AUTO_INHERITED TEXT("AI")
47 
48 /*
49  * SDDL Rights
50  */
51 #define SDDL_READ_PROPERTY TEXT("RP")
52 #define SDDL_WRITE_PROPERTY TEXT("WP")
53 #define SDDL_CREATE_CHILD TEXT("CC")
54 #define SDDL_DELETE_CHILD TEXT("DC")
55 #define SDDL_LIST_CHILDREN TEXT("LC")
56 #define SDDL_SELF_WRITE TEXT("SW")
57 #define SDDL_LIST_OBJECT TEXT("LO")
58 #define SDDL_DELETE_TREE TEXT("DT")
59 #define SDDL_CONTROL_ACCESS TEXT("CR")
60 #define SDDL_READ_CONTROL TEXT("RC")
61 #define SDDL_WRITE_DAC TEXT("WD")
62 #define SDDL_WRITE_OWNER TEXT("WO")
63 #define SDDL_STANDARD_DELETE TEXT("SD")
64 #define SDDL_GENERIC_ALL TEXT("GA")
65 #define SDDL_GENERIC_READ TEXT("GR")
66 #define SDDL_GENERIC_WRITE TEXT("GW")
67 #define SDDL_GENERIC_EXECUTE TEXT("GX")
68 #define SDDL_FILE_ALL TEXT("FA")
69 #define SDDL_FILE_READ TEXT("FR")
70 #define SDDL_FILE_WRITE TEXT("FW")
71 #define SDDL_FILE_EXECUTE TEXT("FX")
72 #define SDDL_KEY_ALL TEXT("KA")
73 #define SDDL_KEY_READ TEXT("KR")
74 #define SDDL_KEY_WRITE TEXT("KW")
75 #define SDDL_KEY_EXECUTE TEXT("KX")
76 
77 #define SDDL_ALIAS_SIZE 2
78 
79 /*
80  * SDDL User aliases
81  */
82 #define SDDL_DOMAIN_ADMINISTRATORS TEXT("DA")
83 #define SDDL_DOMAIN_GUESTS TEXT("DG")
84 #define SDDL_DOMAIN_USERS TEXT("DU")
85 #define SDDL_ENTERPRISE_DOMAIN_CONTROLLERS TEXT("ED")
86 #define SDDL_DOMAIN_DOMAIN_CONTROLLERS TEXT("DD")
87 #define SDDL_DOMAIN_COMPUTERS TEXT("DC")
88 #define SDDL_BUILTIN_ADMINISTRATORS TEXT("BA")
89 #define SDDL_BUILTIN_GUESTS TEXT("BG")
90 #define SDDL_BUILTIN_USERS TEXT("BU")
91 #define SDDL_LOCAL_ADMIN TEXT("LA")
92 #define SDDL_LOCAL_GUEST TEXT("LG")
93 #define SDDL_ACCOUNT_OPERATORS TEXT("AO")
94 #define SDDL_BACKUP_OPERATORS TEXT("BO")
95 #define SDDL_PRINTER_OPERATORS TEXT("PO")
96 #define SDDL_SERVER_OPERATORS TEXT("SO")
97 #define SDDL_AUTHENTICATED_USERS TEXT("AU")
98 #define SDDL_PERSONAL_SELF TEXT("PS")
99 #define SDDL_CREATOR_OWNER TEXT("CO")
100 #define SDDL_CREATOR_GROUP TEXT("CG")
101 #define SDDL_LOCAL_SYSTEM TEXT("SY")
102 #define SDDL_POWER_USERS TEXT("PU")
103 #define SDDL_EVERYONE TEXT("WD")
104 #define SDDL_REPLICATOR TEXT("RE")
105 #define SDDL_INTERACTIVE TEXT("IU")
106 #define SDDL_NETWORK TEXT("NU")
107 #define SDDL_SERVICE TEXT("SU")
108 #define SDDL_RESTRICTED_CODE TEXT("RC")
109 #define SDDL_ANONYMOUS TEXT("AN")
110 #define SDDL_SCHEMA_ADMINISTRATORS TEXT("SA")
111 #define SDDL_CERT_SERV_ADMINISTRATORS TEXT("CA")
112 #define SDDL_RAS_SERVERS TEXT("RS")
113 #define SDDL_ENTERPRISE_ADMINS TEXT("EA")
114 #define SDDL_GROUP_POLICY_ADMINS TEXT("PA")
115 #define SDDL_ALIAS_PREW2KCOMPACC TEXT("RU")
116 #define SDDL_LOCAL_SERVICE TEXT("LS")
117 #define SDDL_NETWORK_SERVICE TEXT("NS")
118 #define SDDL_REMOTE_DESKTOP TEXT("RD")
119 #define SDDL_NETWORK_CONFIGURATION_OPS TEXT("NO")
120 #define SDDL_PERFMON_USERS TEXT("MU")
121 #define SDDL_PERFLOG_USERS TEXT("LU")
122 
123 /*
124  * SDDL Separators - character version
125  */
126 #define SDDL_SEPERATORC TEXT(';')
127 #define SDDL_DELIMINATORC TEXT(':')
128 #define SDDL_ACE_BEGINC TEXT('(')
129 #define SDDL_ACE_ENDC TEXT(')')
130 
131 /*
132  * SDDL Separators - string version
133  */
134 #define SDDL_SEPERATOR TEXT(";")
135 #define SDDL_DELIMINATOR TEXT(":")
136 #define SDDL_ACE_BEGIN TEXT("(")
137 #define SDDL_ACE_END TEXT(")")
138 
151 
152 #ifdef UNICODE
153 #define ConvertSidToStringSid ConvertSidToStringSidW
154 #define ConvertStringSidToSid ConvertStringSidToSidW
155 #define ConvertStringSecurityDescriptorToSecurityDescriptor \
156  ConvertStringSecurityDescriptorToSecurityDescriptorW
157 #define ConvertSecurityDescriptorToStringSecurityDescriptor \
158  ConvertSecurityDescriptorToStringSecurityDescriptorW
159 #else /* UNICODE */
160 #define ConvertSidToStringSid ConvertSidToStringSidA
161 #define ConvertStringSidToSid ConvertStringSidToSidA
162 #define ConvertStringSecurityDescriptorToSecurityDescriptor \
163  ConvertStringSecurityDescriptorToSecurityDescriptorA
164 #define ConvertSecurityDescriptorToStringSecurityDescriptor \
165  ConvertSecurityDescriptorToStringSecurityDescriptorA
166 #endif /* UNICODE */
167 
168 #ifdef __cplusplus
169 }
170 #endif
171 
172 #endif /* __SDDL_H__ */
BOOL WINAPI ConvertStringSidToSidA(LPCSTR, PSID *)
Definition: security.c:3236
BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorW(LPCWSTR, DWORD, PSECURITY_DESCRIPTOR *, PULONG)
Definition: security.c:2738
BOOL WINAPI ConvertSecurityDescriptorToStringSecurityDescriptorA(PSECURITY_DESCRIPTOR, DWORD, SECURITY_INFORMATION, LPSTR *, PULONG)
Definition: security.c:3175
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
BOOL WINAPI ConvertSidToStringSidA(PSID, LPSTR *)
Definition: security.c:3313
char * LPSTR
Definition: xmlstorage.h:182
BOOL WINAPI ConvertSidToStringSidW(PSID, LPWSTR *)
Definition: security.c:3259
unsigned int BOOL
Definition: ntddk_ex.h:94
DWORD SECURITY_INFORMATION
Definition: ms-dtyp.idl:311
const char * LPCSTR
Definition: xmlstorage.h:183
BOOL WINAPI ConvertStringSidToSidW(LPCWSTR, PSID *)
Definition: security.c:3212
#define WINAPI
Definition: msvc.h:8
unsigned long DWORD
Definition: ntddk_ex.h:95
BOOL WINAPI ConvertStringSecurityDescriptorToSecurityDescriptorA(LPCSTR, DWORD, PSECURITY_DESCRIPTOR *, PULONG)
Definition: security.c:2708
unsigned int * PULONG
Definition: retypes.h:1
BOOL WINAPI ConvertSecurityDescriptorToStringSecurityDescriptorW(PSECURITY_DESCRIPTOR, DWORD, SECURITY_INFORMATION, LPWSTR *, PULONG)
Definition: security.c:3111
WCHAR * LPWSTR
Definition: xmlstorage.h:184