Mercurial > projects > ddbg_continued
comparison win32/accctrl.d @ 1:4a9dcbd9e54f
-files of 0.13 beta
-fixes so that it now compiles with the current dmd version
author | marton@basel.hu |
---|---|
date | Tue, 05 Apr 2011 20:44:01 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
0:586e4a649642 | 1:4a9dcbd9e54f |
---|---|
1 /***********************************************************************\ | |
2 * accctrl.d * | |
3 * * | |
4 * Windows API header module * | |
5 * * | |
6 * Translated from MinGW Windows headers * | |
7 * by Stewart Gordon * | |
8 * * | |
9 * Placed into public domain * | |
10 \***********************************************************************/ | |
11 module win32.accctrl; | |
12 | |
13 private import win32.basetyps, win32.w32api, win32.winbase, win32.windef; | |
14 | |
15 // FIXME: check types and grouping of constants | |
16 // FIXME: check Windows version support | |
17 | |
18 static assert (_WIN32_WINNT_ONLY, | |
19 "win32.accctrl is available only if version WindowsNTonly, WindowsXP, " | |
20 "Windows2003 or WindowsVista is set"); | |
21 | |
22 alias LocalFree AccFree; | |
23 | |
24 const uint | |
25 ACTRL_RESERVED = 0x00000000, | |
26 ACTRL_ACCESS_PROTECTED = 0x00000001, | |
27 ACTRL_ACCESS_ALLOWED = 0x00000001, | |
28 ACTRL_ACCESS_DENIED = 0x00000002, | |
29 ACTRL_AUDIT_SUCCESS = 0x00000004, | |
30 ACTRL_AUDIT_FAILURE = 0x00000008, | |
31 ACTRL_SYSTEM_ACCESS = 0x04000000, | |
32 ACTRL_DELETE = 0x08000000, | |
33 ACTRL_READ_CONTROL = 0x10000000, | |
34 ACTRL_CHANGE_ACCESS = 0x20000000, | |
35 ACTRL_CHANGE_OWNER = 0x40000000, | |
36 ACTRL_SYNCHRONIZE = 0x80000000, | |
37 ACTRL_STD_RIGHTS_ALL = 0xf8000000; | |
38 | |
39 const uint | |
40 ACTRL_FILE_READ = 0x00000001, | |
41 ACTRL_FILE_WRITE = 0x00000002, | |
42 ACTRL_FILE_APPEND = 0x00000004, | |
43 ACTRL_FILE_READ_PROP = 0x00000008, | |
44 ACTRL_FILE_WRITE_PROP = 0x00000010, | |
45 ACTRL_FILE_EXECUTE = 0x00000020, | |
46 ACTRL_FILE_READ_ATTRIB = 0x00000080, | |
47 ACTRL_FILE_WRITE_ATTRIB = 0x00000100, | |
48 ACTRL_FILE_CREATE_PIPE = 0x00000200; | |
49 | |
50 const uint | |
51 ACTRL_DIR_LIST = 0x00000001, | |
52 ACTRL_DIR_CREATE_OBJECT = 0x00000002, | |
53 ACTRL_DIR_CREATE_CHILD = 0x00000004, | |
54 ACTRL_DIR_DELETE_CHILD = 0x00000040, | |
55 ACTRL_DIR_TRAVERSE = 0x00000020; | |
56 | |
57 const uint | |
58 ACTRL_KERNEL_TERMINATE = 0x00000001, | |
59 ACTRL_KERNEL_THREAD = 0x00000002, | |
60 ACTRL_KERNEL_VM = 0x00000004, | |
61 ACTRL_KERNEL_VM_READ = 0x00000008, | |
62 ACTRL_KERNEL_VM_WRITE = 0x00000010, | |
63 ACTRL_KERNEL_DUP_HANDLE = 0x00000020, | |
64 ACTRL_KERNEL_PROCESS = 0x00000040, | |
65 ACTRL_KERNEL_SET_INFO = 0x00000080, | |
66 ACTRL_KERNEL_GET_INFO = 0x00000100, | |
67 ACTRL_KERNEL_CONTROL = 0x00000200, | |
68 ACTRL_KERNEL_ALERT = 0x00000400, | |
69 ACTRL_KERNEL_GET_CONTEXT = 0x00000800, | |
70 ACTRL_KERNEL_SET_CONTEXT = 0x00001000, | |
71 ACTRL_KERNEL_TOKEN = 0x00002000, | |
72 ACTRL_KERNEL_IMPERSONATE = 0x00004000, | |
73 ACTRL_KERNEL_DIMPERSONATE = 0x00008000; | |
74 | |
75 const uint | |
76 ACTRL_PRINT_SADMIN = 0x00000001, | |
77 ACTRL_PRINT_SLIST = 0x00000002, | |
78 ACTRL_PRINT_PADMIN = 0x00000004, | |
79 ACTRL_PRINT_PUSE = 0x00000008, | |
80 ACTRL_PRINT_JADMIN = 0x00000010; | |
81 | |
82 const uint | |
83 ACTRL_SVC_GET_INFO = 0x00000001, | |
84 ACTRL_SVC_SET_INFO = 0x00000002, | |
85 ACTRL_SVC_STATUS = 0x00000004, | |
86 ACTRL_SVC_LIST = 0x00000008, | |
87 ACTRL_SVC_START = 0x00000010, | |
88 ACTRL_SVC_STOP = 0x00000020, | |
89 ACTRL_SVC_PAUSE = 0x00000040, | |
90 ACTRL_SVC_INTERROGATE = 0x00000080, | |
91 ACTRL_SVC_UCONTROL = 0x00000100; | |
92 | |
93 const uint | |
94 ACTRL_REG_QUERY = 0x00000001, | |
95 ACTRL_REG_SET = 0x00000002, | |
96 ACTRL_REG_CREATE_CHILD = 0x00000004, | |
97 ACTRL_REG_LIST = 0x00000008, | |
98 ACTRL_REG_NOTIFY = 0x00000010, | |
99 ACTRL_REG_LINK = 0x00000020; | |
100 | |
101 const uint | |
102 ACTRL_WIN_CLIPBRD = 0x00000001, | |
103 ACTRL_WIN_GLOBAL_ATOMS = 0x00000002, | |
104 ACTRL_WIN_CREATE = 0x00000004, | |
105 ACTRL_WIN_LIST_DESK = 0x00000008, | |
106 ACTRL_WIN_LIST = 0x00000010, | |
107 ACTRL_WIN_READ_ATTRIBS = 0x00000020, | |
108 ACTRL_WIN_WRITE_ATTRIBS = 0x00000040, | |
109 ACTRL_WIN_SCREEN = 0x00000080, | |
110 ACTRL_WIN_EXIT = 0x00000100; | |
111 | |
112 enum : uint { | |
113 ACTRL_ACCESS_NO_OPTIONS = 0x00000000, | |
114 ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES = 0x00000001 | |
115 } | |
116 | |
117 const TCHAR[] ACCCTRL_DEFAULT_PROVIDER = "Windows NT Access Provider"; | |
118 | |
119 const uint | |
120 TRUSTEE_ACCESS_ALLOWED = 0x00000001, | |
121 TRUSTEE_ACCESS_READ = 0x00000002, | |
122 TRUSTEE_ACCESS_WRITE = 0x00000004, | |
123 TRUSTEE_ACCESS_EXPLICIT = 0x00000001, | |
124 TRUSTEE_ACCESS_READ_WRITE = 0x00000006, | |
125 TRUSTEE_ACCESS_ALL = 0xFFFFFFFF; | |
126 | |
127 const uint | |
128 NO_INHERITANCE = 0x0, | |
129 SUB_OBJECTS_ONLY_INHERIT = 0x1, | |
130 SUB_CONTAINERS_ONLY_INHERIT = 0x2, | |
131 SUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3, | |
132 INHERIT_NO_PROPAGATE = 0x4, | |
133 INHERIT_ONLY = 0x8, | |
134 INHERITED_ACCESS_ENTRY = 0x10, | |
135 INHERITED_PARENT = 0x10000000, | |
136 INHERITED_GRANDPARENT = 0x20000000; | |
137 | |
138 alias ULONG INHERIT_FLAGS, ACCESS_RIGHTS; | |
139 alias ULONG* PINHERIT_FLAGS, PACCESS_RIGHTS; | |
140 | |
141 enum ACCESS_MODE { | |
142 NOT_USED_ACCESS, | |
143 GRANT_ACCESS, | |
144 SET_ACCESS, | |
145 DENY_ACCESS, | |
146 REVOKE_ACCESS, | |
147 SET_AUDIT_SUCCESS, | |
148 SET_AUDIT_FAILURE | |
149 } | |
150 | |
151 enum SE_OBJECT_TYPE { | |
152 SE_UNKNOWN_OBJECT_TYPE, | |
153 SE_FILE_OBJECT, | |
154 SE_SERVICE, | |
155 SE_PRINTER, | |
156 SE_REGISTRY_KEY, | |
157 SE_LMSHARE, | |
158 SE_KERNEL_OBJECT, | |
159 SE_WINDOW_OBJECT, | |
160 SE_DS_OBJECT, | |
161 SE_DS_OBJECT_ALL, | |
162 SE_PROVIDER_DEFINED_OBJECT, | |
163 SE_WMIGUID_OBJECT, | |
164 SE_REGISTRY_WOW64_32KEY | |
165 } | |
166 | |
167 enum TRUSTEE_TYPE { | |
168 TRUSTEE_IS_UNKNOWN, | |
169 TRUSTEE_IS_USER, | |
170 TRUSTEE_IS_GROUP, | |
171 TRUSTEE_IS_DOMAIN, | |
172 TRUSTEE_IS_ALIAS, | |
173 TRUSTEE_IS_WELL_KNOWN_GROUP, | |
174 TRUSTEE_IS_DELETED, | |
175 TRUSTEE_IS_INVALID, | |
176 TRUSTEE_IS_COMPUTER | |
177 } | |
178 | |
179 enum TRUSTEE_FORM { | |
180 TRUSTEE_IS_SID, | |
181 TRUSTEE_IS_NAME, | |
182 TRUSTEE_BAD_FORM, | |
183 TRUSTEE_IS_OBJECTS_AND_SID, | |
184 TRUSTEE_IS_OBJECTS_AND_NAME | |
185 } | |
186 | |
187 enum MULTIPLE_TRUSTEE_OPERATION { | |
188 NO_MULTIPLE_TRUSTEE, | |
189 TRUSTEE_IS_IMPERSONATE | |
190 } | |
191 | |
192 struct TRUSTEE_A { | |
193 TRUSTEE_A* pMultipleTrustee; | |
194 MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation; | |
195 TRUSTEE_FORM TrusteeForm; | |
196 TRUSTEE_TYPE TrusteeType; | |
197 LPSTR ptstrName; | |
198 } | |
199 alias TRUSTEE_A TRUSTEEA; | |
200 alias TRUSTEE_A* PTRUSTEE_A, PTRUSTEEA; | |
201 | |
202 struct TRUSTEE_W { | |
203 TRUSTEE_W* pMultipleTrustee; | |
204 MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation; | |
205 TRUSTEE_FORM TrusteeForm; | |
206 TRUSTEE_TYPE TrusteeType; | |
207 LPWSTR ptstrName; | |
208 } | |
209 alias TRUSTEE_W TRUSTEEW; | |
210 alias TRUSTEEW* PTRUSTEE_W, PTRUSTEEW; | |
211 | |
212 struct ACTRL_ACCESS_ENTRYA { | |
213 TRUSTEE_A Trustee; | |
214 ULONG fAccessFlags; | |
215 ACCESS_RIGHTS Access; | |
216 ACCESS_RIGHTS ProvSpecificAccess; | |
217 INHERIT_FLAGS Inheritance; | |
218 LPCSTR lpInheritProperty; | |
219 } | |
220 alias ACTRL_ACCESS_ENTRYA* PACTRL_ACCESS_ENTRYA; | |
221 | |
222 struct ACTRL_ACCESS_ENTRYW { | |
223 TRUSTEE_W Trustee; | |
224 ULONG fAccessFlags; | |
225 ACCESS_RIGHTS Access; | |
226 ACCESS_RIGHTS ProvSpecificAccess; | |
227 INHERIT_FLAGS Inheritance; | |
228 LPCWSTR lpInheritProperty; | |
229 } | |
230 alias ACTRL_ACCESS_ENTRYW* PACTRL_ACCESS_ENTRYW; | |
231 | |
232 struct ACTRL_ACCESS_ENTRY_LISTA { | |
233 ULONG cEntries; | |
234 ACTRL_ACCESS_ENTRYA* pAccessList; | |
235 } | |
236 alias ACTRL_ACCESS_ENTRY_LISTA* PACTRL_ACCESS_ENTRY_LISTA; | |
237 | |
238 struct ACTRL_ACCESS_ENTRY_LISTW { | |
239 ULONG cEntries; | |
240 ACTRL_ACCESS_ENTRYW* pAccessList; | |
241 } | |
242 alias ACTRL_ACCESS_ENTRY_LISTW* PACTRL_ACCESS_ENTRY_LISTW; | |
243 | |
244 struct ACTRL_PROPERTY_ENTRYA { | |
245 LPCSTR lpProperty; | |
246 PACTRL_ACCESS_ENTRY_LISTA pAccessEntryList; | |
247 ULONG fListFlags; | |
248 } | |
249 alias ACTRL_PROPERTY_ENTRYA* PACTRL_PROPERTY_ENTRYA; | |
250 | |
251 struct ACTRL_PROPERTY_ENTRYW { | |
252 LPCWSTR lpProperty; | |
253 PACTRL_ACCESS_ENTRY_LISTW pAccessEntryList; | |
254 ULONG fListFlags; | |
255 } | |
256 alias ACTRL_PROPERTY_ENTRYW* PACTRL_PROPERTY_ENTRYW; | |
257 | |
258 struct ACTRL_ACCESSA { | |
259 ULONG cEntries; | |
260 PACTRL_PROPERTY_ENTRYA pPropertyAccessList; | |
261 } | |
262 alias ACTRL_ACCESSA ACTRL_AUDITA; | |
263 alias ACTRL_ACCESSA* PACTRL_ACCESSA, PACTRL_AUDITA; | |
264 | |
265 struct ACTRL_ACCESSW { | |
266 ULONG cEntries; | |
267 PACTRL_PROPERTY_ENTRYW pPropertyAccessList; | |
268 } | |
269 alias ACTRL_ACCESSW ACTRL_AUDITW; | |
270 alias ACTRL_ACCESSW* PACTRL_ACCESSW, PACTRL_AUDITW; | |
271 | |
272 struct TRUSTEE_ACCESSA { | |
273 LPSTR lpProperty; | |
274 ACCESS_RIGHTS Access; | |
275 ULONG fAccessFlags; | |
276 ULONG fReturnedAccess; | |
277 } | |
278 alias TRUSTEE_ACCESSA* PTRUSTEE_ACCESSA; | |
279 | |
280 struct TRUSTEE_ACCESSW { | |
281 LPWSTR lpProperty; | |
282 ACCESS_RIGHTS Access; | |
283 ULONG fAccessFlags; | |
284 ULONG fReturnedAccess; | |
285 } | |
286 alias TRUSTEE_ACCESSW* PTRUSTEE_ACCESSW; | |
287 | |
288 struct ACTRL_OVERLAPPED { | |
289 union { | |
290 PVOID Provider; | |
291 ULONG Reserved1; | |
292 } | |
293 ULONG Reserved2; | |
294 HANDLE hEvent; | |
295 } | |
296 alias ACTRL_OVERLAPPED* PACTRL_OVERLAPPED; | |
297 | |
298 struct ACTRL_ACCESS_INFOA { | |
299 ULONG fAccessPermission; | |
300 LPSTR lpAccessPermissionName; | |
301 } | |
302 alias ACTRL_ACCESS_INFOA* PACTRL_ACCESS_INFOA; | |
303 | |
304 struct ACTRL_ACCESS_INFOW { | |
305 ULONG fAccessPermission; | |
306 LPWSTR lpAccessPermissionName; | |
307 } | |
308 alias ACTRL_ACCESS_INFOW* PACTRL_ACCESS_INFOW; | |
309 | |
310 struct ACTRL_CONTROL_INFOA { | |
311 LPSTR lpControlId; | |
312 LPSTR lpControlName; | |
313 } | |
314 alias ACTRL_CONTROL_INFOA* PACTRL_CONTROL_INFOA; | |
315 | |
316 struct ACTRL_CONTROL_INFOW { | |
317 LPWSTR lpControlId; | |
318 LPWSTR lpControlName; | |
319 } | |
320 alias ACTRL_CONTROL_INFOW* PACTRL_CONTROL_INFOW; | |
321 | |
322 struct EXPLICIT_ACCESS_A { | |
323 DWORD grfAccessPermissions; | |
324 ACCESS_MODE grfAccessMode; | |
325 DWORD grfInheritance; | |
326 TRUSTEE_A Trustee; | |
327 } | |
328 alias EXPLICIT_ACCESS_A EXPLICIT_ACCESSA; | |
329 alias EXPLICIT_ACCESS_A* PEXPLICIT_ACCESS_A, PEXPLICIT_ACCESSA; | |
330 | |
331 struct EXPLICIT_ACCESS_W { | |
332 DWORD grfAccessPermissions; | |
333 ACCESS_MODE grfAccessMode; | |
334 DWORD grfInheritance; | |
335 TRUSTEE_W Trustee; | |
336 } | |
337 alias EXPLICIT_ACCESS_W EXPLICIT_ACCESSW; | |
338 alias EXPLICIT_ACCESS_W* PEXPLICIT_ACCESS_W, PEXPLICIT_ACCESSW; | |
339 | |
340 struct OBJECTS_AND_SID { | |
341 DWORD ObjectsPresent; | |
342 GUID ObjectTypeGuid; | |
343 GUID InheritedObjectTypeGuid; | |
344 SID* pSid; | |
345 } | |
346 alias OBJECTS_AND_SID* POBJECTS_AND_SID; | |
347 | |
348 struct OBJECTS_AND_NAME_A { | |
349 DWORD ObjectsPresent; | |
350 SE_OBJECT_TYPE ObjectType; | |
351 LPSTR ObjectTypeName; | |
352 LPSTR InheritedObjectTypeName; | |
353 LPSTR ptstrName; | |
354 } | |
355 alias OBJECTS_AND_NAME_A* POBJECTS_AND_NAME_A; | |
356 | |
357 struct OBJECTS_AND_NAME_W { | |
358 DWORD ObjectsPresent; | |
359 SE_OBJECT_TYPE ObjectType; | |
360 LPWSTR ObjectTypeName; | |
361 LPWSTR InheritedObjectTypeName; | |
362 LPWSTR ptstrName; | |
363 } | |
364 alias OBJECTS_AND_NAME_W* POBJECTS_AND_NAME_W; | |
365 | |
366 static if (WINVER >= 0x501) { | |
367 struct INHERITED_FROMA { | |
368 LONG GenerationGap; | |
369 LPSTR AncestorName; | |
370 } | |
371 alias INHERITED_FROMA* PINHERITED_FROMA; | |
372 | |
373 struct INHERITED_FROMW { | |
374 LONG GenerationGap; | |
375 LPWSTR AncestorName; | |
376 } | |
377 alias INHERITED_FROMW* PINHERITED_FROMW; | |
378 } | |
379 | |
380 version (Unicode) { | |
381 alias TRUSTEEW TRUSTEE; | |
382 alias ACTRL_ACCESSW ACTRL_ACCESS; | |
383 alias ACTRL_ACCESS_ENTRY_LISTW ACTRL_ACCESS_ENTRY_LIST; | |
384 alias ACTRL_ACCESS_INFOW ACTRL_ACCESS_INFO; | |
385 alias ACTRL_ACCESS_ENTRYW ACTRL_ACCESS_ENTRY; | |
386 alias ACTRL_AUDITW ACTRL_AUDIT; | |
387 alias ACTRL_CONTROL_INFOW ACTRL_CONTROL_INFO; | |
388 alias EXPLICIT_ACCESSW EXPLICIT_ACCESS; | |
389 alias TRUSTEE_ACCESSW TRUSTEE_ACCESS; | |
390 alias OBJECTS_AND_NAME_W OBJECTS_AND_NAME_; | |
391 static if (WINVER >= 0x501) { | |
392 alias INHERITED_FROMW INHERITED_FROM; | |
393 } | |
394 } else { | |
395 alias TRUSTEEA TRUSTEE; | |
396 alias ACTRL_ACCESSA ACTRL_ACCESS; | |
397 alias ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LIST; | |
398 alias ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFO; | |
399 alias ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRY; | |
400 alias ACTRL_AUDITA ACTRL_AUDIT; | |
401 alias ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFO; | |
402 alias EXPLICIT_ACCESSA EXPLICIT_ACCESS; | |
403 alias TRUSTEE_ACCESSA TRUSTEE_ACCESS; | |
404 alias OBJECTS_AND_NAME_A OBJECTS_AND_NAME_; | |
405 static if (WINVER >= 0x501) { | |
406 alias INHERITED_FROMA INHERITED_FROM; | |
407 } | |
408 } | |
409 | |
410 alias TRUSTEE TRUSTEE_; | |
411 alias TRUSTEE* PTRUSTEE, PTRUSTEE_; | |
412 alias ACTRL_ACCESS* PACTRL_ACCESS; | |
413 alias ACTRL_ACCESS_ENTRY_LIST* PACTRL_ACCESS_ENTRY_LIST; | |
414 alias ACTRL_ACCESS_INFO* PACTRL_ACCESS_INFO; | |
415 alias ACTRL_ACCESS_ENTRY* PACTRL_ACCESS_ENTRY; | |
416 alias ACTRL_AUDIT* PACTRL_AUDIT; | |
417 alias ACTRL_CONTROL_INFO* PACTRL_CONTROL_INFO; | |
418 alias EXPLICIT_ACCESS EXPLICIT_ACCESS_; | |
419 alias EXPLICIT_ACCESS* PEXPLICIT_ACCESS, PEXPLICIT_ACCESS_; | |
420 alias TRUSTEE_ACCESS* PTRUSTEE_ACCESS; | |
421 alias OBJECTS_AND_NAME_* POBJECTS_AND_NAME_; | |
422 static if (WINVER >= 0x501) { | |
423 alias INHERITED_FROM* PINHERITED_FROM; | |
424 } |