Avoid buffer overflows in builtin dll loading (with the help of Dmitry
[wine/multimedia.git] / include / ntdef.h
blobedf0af86c1ebfaa32653d4749b47a7db42505a7c
1 #ifndef __WINE_NTDEF_H
2 #define __WINE_NTDEF_H
4 #include "basetsd.h"
5 #include "windef.h"
7 #include "pshpack1.h"
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
13 #define NTAPI __stdcall
15 #ifndef IN
16 #define IN
17 #endif
19 #ifndef OUT
20 #define OUT
21 #endif
23 #ifndef OPTIONAL
24 #define OPTIONAL
25 #endif
27 #ifndef VOID
28 #define VOID void
29 #endif
31 typedef LONG NTSTATUS;
32 typedef NTSTATUS *PNTSTATUS;
34 typedef short CSHORT;
35 typedef CSHORT *PCSHORT;
37 typedef WCHAR * PWCHAR;
39 /* NT lowlevel Strings (handled by Rtl* functions in NTDLL)
40 * If they are zero terminated, Length does not include the terminating 0.
43 typedef struct _STRING {
44 USHORT Length;
45 USHORT MaximumLength;
46 PSTR Buffer;
47 } STRING,*PSTRING,ANSI_STRING,*PANSI_STRING;
49 typedef struct _CSTRING {
50 USHORT Length;
51 USHORT MaximumLength;
52 PCSTR Buffer;
53 } CSTRING,*PCSTRING;
55 typedef struct _UNICODE_STRING {
56 USHORT Length; /* bytes */
57 USHORT MaximumLength; /* bytes */
58 PWSTR Buffer;
59 } UNICODE_STRING,*PUNICODE_STRING;
62 Objects
65 #define OBJ_INHERIT 0x00000002L
66 #define OBJ_PERMANENT 0x00000010L
67 #define OBJ_EXCLUSIVE 0x00000020L
68 #define OBJ_CASE_INSENSITIVE 0x00000040L
69 #define OBJ_OPENIF 0x00000080L
70 #define OBJ_OPENLINK 0x00000100L
71 #define OBJ_KERNEL_HANDLE 0x00000200L
72 #define OBJ_VALID_ATTRIBUTES 0x000003F2L
74 typedef struct _OBJECT_ATTRIBUTES
75 { ULONG Length;
76 HANDLE RootDirectory;
77 PUNICODE_STRING ObjectName;
78 ULONG Attributes;
79 PVOID SecurityDescriptor; /* type SECURITY_DESCRIPTOR */
80 PVOID SecurityQualityOfService; /* type SECURITY_QUALITY_OF_SERVICE */
81 } OBJECT_ATTRIBUTES;
83 typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;
85 #define InitializeObjectAttributes(p,n,a,r,s) \
86 { (p)->Length = sizeof(OBJECT_ATTRIBUTES); \
87 (p)->RootDirectory = r; \
88 (p)->Attributes = a; \
89 (p)->ObjectName = n; \
90 (p)->SecurityDescriptor = s; \
91 (p)->SecurityQualityOfService = NULL; \
95 #ifdef __cplusplus
97 #endif
99 #include "poppack.h"
101 #endif