Bugfix: Perform proper process shutdown on 'quit' and error.
[wine] / include / ntdef.h
1 #ifndef __WINE_NTDEF_H
2 #define __WINE_NTDEF_H
3
4 #include "basetsd.h"
5 #include "windef.h"
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10
11 #define NTAPI   __stdcall 
12
13 #ifndef IN
14 #define IN
15 #endif
16
17 #ifndef OUT
18 #define OUT
19 #endif
20
21 #ifndef OPTIONAL
22 #define OPTIONAL
23 #endif
24
25 #ifndef VOID
26 #define VOID void
27 #endif
28
29 typedef LONG NTSTATUS;
30 typedef NTSTATUS *PNTSTATUS;
31
32 typedef short CSHORT;
33 typedef CSHORT *PCSHORT;  
34
35 typedef WCHAR * PWCHAR;
36
37 /* NT lowlevel Strings (handled by Rtl* functions in NTDLL)
38  * If they are zero terminated, Length does not include the terminating 0.
39  */
40
41 typedef struct _STRING {
42         USHORT  Length;
43         USHORT  MaximumLength;
44         PSTR    Buffer;
45 } STRING,*PSTRING,ANSI_STRING,*PANSI_STRING;
46
47 typedef struct _CSTRING {
48         USHORT  Length;
49         USHORT  MaximumLength;
50         PCSTR   Buffer;
51 } CSTRING,*PCSTRING;
52
53 typedef struct _UNICODE_STRING {
54         USHORT  Length;         /* bytes */
55         USHORT  MaximumLength;  /* bytes */
56         PWSTR   Buffer;
57 } UNICODE_STRING,*PUNICODE_STRING;
58
59 /*
60         Objects
61 */
62
63 #define OBJ_INHERIT             0x00000002L
64 #define OBJ_PERMANENT           0x00000010L
65 #define OBJ_EXCLUSIVE           0x00000020L
66 #define OBJ_CASE_INSENSITIVE    0x00000040L
67 #define OBJ_OPENIF              0x00000080L
68 #define OBJ_OPENLINK            0x00000100L
69 #define OBJ_KERNEL_HANDLE       0x00000200L
70 #define OBJ_VALID_ATTRIBUTES    0x000003F2L
71
72 typedef struct _OBJECT_ATTRIBUTES 
73 {   ULONG Length;
74     HANDLE RootDirectory;
75     PUNICODE_STRING ObjectName;
76     ULONG Attributes;
77     PVOID SecurityDescriptor;        /* type SECURITY_DESCRIPTOR */
78     PVOID SecurityQualityOfService;  /* type SECURITY_QUALITY_OF_SERVICE */
79 } OBJECT_ATTRIBUTES;
80
81 typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;
82
83 #ifdef __cplusplus
84 }
85 #endif
86
87 #endif