reshuffling of dlls
[reactos.git] / reactos / dll / advapi32 / sec / trustee.c
1 /* $Id$
2 *
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS system libraries
5 * FILE: lib/advapi32/sec/trustee.c
6 * PURPOSE: Trustee functions
7 */
8
9 #include <advapi32.h>
10
11 #define NDEBUG
12 #include <debug.h>
13
14
15 /******************************************************************************
16 * BuildImpersonateTrusteeA [ADVAPI32.@]
17 */
18 VOID WINAPI
19 BuildImpersonateTrusteeA(PTRUSTEE_A pTrustee,
20 PTRUSTEE_A pImpersonateTrustee)
21 {
22 pTrustee->pMultipleTrustee = pImpersonateTrustee;
23 pTrustee->MultipleTrusteeOperation = TRUSTEE_IS_IMPERSONATE;
24 }
25
26
27 /******************************************************************************
28 * BuildImpersonateTrusteeW [ADVAPI32.@]
29 */
30 VOID WINAPI
31 BuildImpersonateTrusteeW(PTRUSTEE_W pTrustee,
32 PTRUSTEE_W pImpersonateTrustee)
33 {
34 pTrustee->pMultipleTrustee = pImpersonateTrustee;
35 pTrustee->MultipleTrusteeOperation = TRUSTEE_IS_IMPERSONATE;
36 }
37
38
39 /******************************************************************************
40 * BuildExplicitAccessWithNameA [ADVAPI32.@]
41 */
42 VOID WINAPI
43 BuildExplicitAccessWithNameA(PEXPLICIT_ACCESSA pExplicitAccess,
44 LPSTR pTrusteeName,
45 DWORD AccessPermissions,
46 ACCESS_MODE AccessMode,
47 DWORD Inheritance)
48 {
49 pExplicitAccess->grfAccessPermissions = AccessPermissions;
50 pExplicitAccess->grfAccessMode = AccessMode;
51 pExplicitAccess->grfInheritance = Inheritance;
52
53 pExplicitAccess->Trustee.pMultipleTrustee = NULL;
54 pExplicitAccess->Trustee.MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
55 pExplicitAccess->Trustee.TrusteeForm = TRUSTEE_IS_NAME;
56 pExplicitAccess->Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN;
57 pExplicitAccess->Trustee.ptstrName = pTrusteeName;
58 }
59
60
61 /******************************************************************************
62 * BuildExplicitAccessWithNameW [ADVAPI32.@]
63 */
64 VOID WINAPI
65 BuildExplicitAccessWithNameW(PEXPLICIT_ACCESSW pExplicitAccess,
66 LPWSTR pTrusteeName,
67 DWORD AccessPermissions,
68 ACCESS_MODE AccessMode,
69 DWORD Inheritance)
70 {
71 pExplicitAccess->grfAccessPermissions = AccessPermissions;
72 pExplicitAccess->grfAccessMode = AccessMode;
73 pExplicitAccess->grfInheritance = Inheritance;
74
75 pExplicitAccess->Trustee.pMultipleTrustee = NULL;
76 pExplicitAccess->Trustee.MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
77 pExplicitAccess->Trustee.TrusteeForm = TRUSTEE_IS_NAME;
78 pExplicitAccess->Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN;
79 pExplicitAccess->Trustee.ptstrName = pTrusteeName;
80 }
81
82
83 /******************************************************************************
84 * BuildImpersonateExplicitAccessWithNameA [ADVAPI32.@]
85 */
86 VOID WINAPI
87 BuildImpersonateExplicitAccessWithNameA(PEXPLICIT_ACCESS_A pExplicitAccess,
88 LPSTR pTrusteeName,
89 PTRUSTEE_A pTrustee,
90 DWORD AccessPermissions,
91 ACCESS_MODE AccessMode,
92 DWORD Inheritance)
93 {
94 pExplicitAccess->grfAccessPermissions = AccessPermissions;
95 pExplicitAccess->grfAccessMode = AccessMode;
96 pExplicitAccess->grfInheritance = Inheritance;
97
98 pExplicitAccess->Trustee.pMultipleTrustee = pTrustee;
99 pExplicitAccess->Trustee.MultipleTrusteeOperation = TRUSTEE_IS_IMPERSONATE;
100 pExplicitAccess->Trustee.TrusteeForm = TRUSTEE_IS_NAME;
101 pExplicitAccess->Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN;
102 pExplicitAccess->Trustee.ptstrName = pTrusteeName;
103 }
104
105
106 /******************************************************************************
107 * BuildImpersonateExplicitAccessWithNameW [ADVAPI32.@]
108 */
109 VOID WINAPI
110 BuildImpersonateExplicitAccessWithNameW(PEXPLICIT_ACCESS_W pExplicitAccess,
111 LPWSTR pTrusteeName,
112 PTRUSTEE_W pTrustee,
113 DWORD AccessPermissions,
114 ACCESS_MODE AccessMode,
115 DWORD Inheritance)
116 {
117 pExplicitAccess->grfAccessPermissions = AccessPermissions;
118 pExplicitAccess->grfAccessMode = AccessMode;
119 pExplicitAccess->grfInheritance = Inheritance;
120
121 pExplicitAccess->Trustee.pMultipleTrustee = pTrustee;
122 pExplicitAccess->Trustee.MultipleTrusteeOperation = TRUSTEE_IS_IMPERSONATE;
123 pExplicitAccess->Trustee.TrusteeForm = TRUSTEE_IS_NAME;
124 pExplicitAccess->Trustee.TrusteeType = TRUSTEE_IS_UNKNOWN;
125 pExplicitAccess->Trustee.ptstrName = pTrusteeName;
126 }
127
128
129 /******************************************************************************
130 * BuildTrusteeWithSidA [ADVAPI32.@]
131 */
132 VOID WINAPI
133 BuildTrusteeWithSidA(PTRUSTEE_A pTrustee, PSID pSid)
134 {
135 DPRINT("%p %p\n", pTrustee, pSid);
136
137 pTrustee->pMultipleTrustee = NULL;
138 pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
139 pTrustee->TrusteeForm = TRUSTEE_IS_SID;
140 pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
141 pTrustee->ptstrName = (LPSTR) pSid;
142 }
143
144
145 /******************************************************************************
146 * BuildTrusteeWithSidW [ADVAPI32.@]
147 */
148 VOID WINAPI
149 BuildTrusteeWithSidW(PTRUSTEE_W pTrustee, PSID pSid)
150 {
151 DPRINT("%p %p\n", pTrustee, pSid);
152
153 pTrustee->pMultipleTrustee = NULL;
154 pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
155 pTrustee->TrusteeForm = TRUSTEE_IS_SID;
156 pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
157 pTrustee->ptstrName = (LPWSTR) pSid;
158 }
159
160
161 /******************************************************************************
162 * BuildTrusteeWithNameA [ADVAPI32.@]
163 */
164 VOID WINAPI
165 BuildTrusteeWithNameA(PTRUSTEE_A pTrustee, LPSTR name)
166 {
167 DPRINT("%p %s\n", pTrustee, name);
168
169 pTrustee->pMultipleTrustee = NULL;
170 pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
171 pTrustee->TrusteeForm = TRUSTEE_IS_NAME;
172 pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
173 pTrustee->ptstrName = name;
174 }
175
176
177 /******************************************************************************
178 * BuildTrusteeWithNameW [ADVAPI32.@]
179 */
180 VOID WINAPI
181 BuildTrusteeWithNameW(PTRUSTEE_W pTrustee, LPWSTR name)
182 {
183 DPRINT("%p %s\n", pTrustee, name);
184
185 pTrustee->pMultipleTrustee = NULL;
186 pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
187 pTrustee->TrusteeForm = TRUSTEE_IS_NAME;
188 pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
189 pTrustee->ptstrName = name;
190 }
191
192
193 /******************************************************************************
194 * BuildTrusteeWithObjectsAndNameA [ADVAPI32.@]
195 */
196 VOID WINAPI
197 BuildTrusteeWithObjectsAndNameA(PTRUSTEEA pTrustee, POBJECTS_AND_NAME_A pObjName,
198 SE_OBJECT_TYPE ObjectType, LPSTR ObjectTypeName,
199 LPSTR InheritedObjectTypeName, LPSTR Name)
200 {
201 DPRINT("%p %p 0x%08x %p %p %s\n", pTrustee, pObjName,
202 ObjectType, ObjectTypeName, InheritedObjectTypeName, Name);
203
204 pTrustee->pMultipleTrustee = NULL;
205 pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
206 pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_NAME;
207 pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
208 pTrustee->ptstrName = Name;
209 }
210
211
212 /******************************************************************************
213 * BuildTrusteeWithObjectsAndNameW [ADVAPI32.@]
214 */
215 VOID WINAPI
216 BuildTrusteeWithObjectsAndNameW(PTRUSTEEW pTrustee, POBJECTS_AND_NAME_W pObjName,
217 SE_OBJECT_TYPE ObjectType, LPWSTR ObjectTypeName,
218 LPWSTR InheritedObjectTypeName, LPWSTR Name)
219 {
220 DPRINT("%p %p 0x%08x %p %p %S\n", pTrustee, pObjName,
221 ObjectType, ObjectTypeName, InheritedObjectTypeName, Name);
222
223 pTrustee->pMultipleTrustee = NULL;
224 pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
225 pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_NAME;
226 pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
227 pTrustee->ptstrName = Name;
228 }
229
230
231 /******************************************************************************
232 * BuildTrusteeWithObjectsAndSidA [ADVAPI32.@]
233 */
234 VOID WINAPI
235 BuildTrusteeWithObjectsAndSidA(PTRUSTEEA pTrustee, POBJECTS_AND_SID pObjSid,
236 GUID* pObjectGuid, GUID* pInheritedObjectGuid, PSID pSid)
237 {
238 DPRINT("%p %p %p %p %p\n", pTrustee, pObjSid, pObjectGuid, pInheritedObjectGuid, pSid);
239
240 pTrustee->pMultipleTrustee = NULL;
241 pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
242 pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_SID;
243 pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
244 pTrustee->ptstrName = (LPSTR) pSid;
245 }
246
247
248 /******************************************************************************
249 * BuildTrusteeWithObjectsAndSidW [ADVAPI32.@]
250 */
251 VOID WINAPI
252 BuildTrusteeWithObjectsAndSidW(PTRUSTEEW pTrustee, POBJECTS_AND_SID pObjSid,
253 GUID* pObjectGuid, GUID* pInheritedObjectGuid, PSID pSid)
254 {
255 DPRINT("%p %p %p %p %p\n", pTrustee, pObjSid, pObjectGuid, pInheritedObjectGuid, pSid);
256
257 pTrustee->pMultipleTrustee = NULL;
258 pTrustee->MultipleTrusteeOperation = NO_MULTIPLE_TRUSTEE;
259 pTrustee->TrusteeForm = TRUSTEE_IS_OBJECTS_AND_SID;
260 pTrustee->TrusteeType = TRUSTEE_IS_UNKNOWN;
261 pTrustee->ptstrName = (LPWSTR) pSid;
262 }
263
264
265 /******************************************************************************
266 * GetMultipleTrusteeA [ADVAPI32.@]
267 */
268 PTRUSTEEA WINAPI
269 GetMultipleTrusteeA(PTRUSTEE_A pTrustee)
270 {
271 return pTrustee->pMultipleTrustee;
272 }
273
274
275 /******************************************************************************
276 * GetMultipleTrusteeW [ADVAPI32.@]
277 */
278 PTRUSTEEW WINAPI
279 GetMultipleTrusteeW(PTRUSTEE_W pTrustee)
280 {
281 return pTrustee->pMultipleTrustee;
282 }
283
284
285 /******************************************************************************
286 * GetMultipleTrusteeOperationA [ADVAPI32.@]
287 */
288 MULTIPLE_TRUSTEE_OPERATION WINAPI
289 GetMultipleTrusteeOperationA(PTRUSTEE_A pTrustee)
290 {
291 return pTrustee->MultipleTrusteeOperation;
292 }
293
294
295 /******************************************************************************
296 * GetMultipleTrusteeOperationW [ADVAPI32.@]
297 */
298 MULTIPLE_TRUSTEE_OPERATION WINAPI
299 GetMultipleTrusteeOperationW(PTRUSTEE_W pTrustee)
300 {
301 return pTrustee->MultipleTrusteeOperation;
302 }
303
304
305 /******************************************************************************
306 * GetTrusteeFormW [ADVAPI32.@]
307 */
308 TRUSTEE_FORM WINAPI
309 GetTrusteeFormA(PTRUSTEE_A pTrustee)
310 {
311 return pTrustee->TrusteeForm;
312 }
313
314
315 /******************************************************************************
316 * GetTrusteeFormW [ADVAPI32.@]
317 */
318 TRUSTEE_FORM WINAPI
319 GetTrusteeFormW(PTRUSTEE_W pTrustee)
320 {
321 return pTrustee->TrusteeForm;
322 }
323
324
325 /******************************************************************************
326 * GetTrusteeNameA [ADVAPI32.@]
327 */
328 LPSTR WINAPI
329 GetTrusteeNameA(PTRUSTEE_A pTrustee)
330 {
331 return (pTrustee->TrusteeForm == TRUSTEE_IS_NAME) ? pTrustee->ptstrName : NULL;
332 }
333
334
335 /******************************************************************************
336 * GetTrusteeNameW [ADVAPI32.@]
337 */
338 LPWSTR WINAPI
339 GetTrusteeNameW(PTRUSTEE_W pTrustee)
340 {
341 return (pTrustee->TrusteeForm == TRUSTEE_IS_NAME) ? pTrustee->ptstrName : NULL;
342 }
343
344
345 /******************************************************************************
346 * GetTrusteeTypeA [ADVAPI32.@]
347 */
348 TRUSTEE_TYPE WINAPI
349 GetTrusteeTypeA(PTRUSTEE_A pTrustee)
350 {
351 return pTrustee->TrusteeType;
352 }
353
354
355 /******************************************************************************
356 * GetTrusteeTypeW [ADVAPI32.@]
357 */
358 TRUSTEE_TYPE WINAPI
359 GetTrusteeTypeW(PTRUSTEE_W pTrustee)
360 {
361 return pTrustee->TrusteeType;
362 }
363
364 /* EOF */