comparison win32/ntdef.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 * ntdef.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.ntdef;
12
13 private import win32.basetsd, win32.subauth, win32.windef, win32.winnt;
14
15 const uint
16 OBJ_INHERIT = 0x0002,
17 OBJ_PERMANENT = 0x0010,
18 OBJ_EXCLUSIVE = 0x0020,
19 OBJ_CASE_INSENSITIVE = 0x0040,
20 OBJ_OPENIF = 0x0080,
21 OBJ_OPENLINK = 0x0100,
22 OBJ_VALID_ATTRIBUTES = 0x01F2;
23
24 void InitializeObjectAttributes(OBJECT_ATTRIBUTES* p, UNICODE_STRING* n,
25 uint a, HANDLE r, void* s) {
26 with (*p) {
27 Length = OBJECT_ATTRIBUTES.sizeof;
28 RootDirectory = r;
29 Attributes = a;
30 ObjectName = n;
31 SecurityDescriptor = s;
32 SecurityQualityOfService = null;
33 }
34 }
35
36 bool NT_SUCCESS(int x) { return x >= 0; }
37
38 /* In MinGW, NTSTATUS, UNICODE_STRING, STRING and their associated pointer
39 * type aliases are defined in ntdef.h, ntsecapi.h and subauth.h, each of
40 * which checks that none of the others is already included.
41 */
42 alias int NTSTATUS;
43 alias int* PNTSTATUS;
44
45 struct UNICODE_STRING {
46 USHORT Length;
47 USHORT MaximumLength;
48 PWSTR Buffer;
49 }
50 alias UNICODE_STRING* PUNICODE_STRING, PCUNICODE_STRING;
51
52 struct STRING {
53 USHORT Length;
54 USHORT MaximumLength;
55 PCHAR Buffer;
56 }
57 alias STRING ANSI_STRING, OEM_STRING;
58 alias STRING* PSTRING, PANSI_STRING, POEM_STRING;
59
60 alias LARGE_INTEGER PHYSICAL_ADDRESS;
61 alias LARGE_INTEGER* PPHYSICAL_ADDRESS;
62
63 enum SECTION_INHERIT {
64 ViewShare = 1,
65 ViewUnmap
66 }
67
68 /* In MinGW, this is defined in ntdef.h and ntsecapi.h, each of which checks
69 * that the other isn't already included.
70 */
71 struct OBJECT_ATTRIBUTES {
72 ULONG Length = OBJECT_ATTRIBUTES.sizeof;
73 HANDLE RootDirectory;
74 PUNICODE_STRING ObjectName;
75 ULONG Attributes;
76 PVOID SecurityDescriptor;
77 PVOID SecurityQualityOfService;
78 }
79 alias OBJECT_ATTRIBUTES* POBJECT_ATTRIBUTES;