Changed pidl structure to match the pidl's used in lnk-files.
[wine] / include / ntdef.h
1 #ifndef __WINE_NTDEF_H
2 #define __WINE_NTDEF_H
3
4 #define NTAPI   __stdcall 
5
6 #ifndef IN
7 #define IN
8 #endif
9
10 #ifndef OUT
11 #define OUT
12 #endif
13
14 #ifndef OPTIONAL
15 #define OPTIONAL
16 #endif
17
18 /* NT lowlevel Strings (handled by Rtl* functions in NTDLL)
19  * If they are zero terminated, Length does not include the terminating 0.
20  */
21
22 typedef struct _STRING {
23         UINT16  Length;
24         UINT16  MaximumLength;
25         LPSTR   Buffer;
26 } STRING,*PSTRING,ANSI_STRING,*PANSI_STRING;
27
28 typedef struct _CSTRING {
29         UINT16  Length;
30         UINT16  MaximumLength;
31         LPCSTR  Buffer;
32 } CSTRING,*PCSTRING;
33
34 typedef struct _UNICODE_STRING {
35         UINT16  Length;         /* bytes */
36         UINT16  MaximumLength;  /* bytes */
37         LPWSTR  Buffer;
38 } UNICODE_STRING,*PUNICODE_STRING;
39
40 /*
41         Objects
42 */
43
44 #define OBJ_INHERIT             0x00000002L
45 #define OBJ_PERMANENT           0x00000010L
46 #define OBJ_EXCLUSIVE           0x00000020L
47 #define OBJ_CASE_INSENSITIVE    0x00000040L
48 #define OBJ_OPENIF              0x00000080L
49 #define OBJ_OPENLINK            0x00000100L
50 #define OBJ_KERNEL_HANDLE       0x00000200L
51 #define OBJ_VALID_ATTRIBUTES    0x000003F2L
52
53 typedef struct _OBJECT_ATTRIBUTES 
54 {   ULONG Length;
55     HANDLE32 RootDirectory;
56     PUNICODE_STRING ObjectName;
57     ULONG Attributes;
58     PVOID SecurityDescriptor;        /* type SECURITY_DESCRIPTOR */
59     PVOID SecurityQualityOfService;  /* type SECURITY_QUALITY_OF_SERVICE */
60 } OBJECT_ATTRIBUTES;
61
62 typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;
63
64
65 #endif