Authors: Chris Morgan <cmorgan@wpi.edu>, James Abbatiello <abbejy@wpi.edu>
[wine/multimedia.git] / include / ntdef.h
blobc42e4b70be9ce9d4d29ebb746abb034c66a401c2
1 #ifndef __WINE_NTDEF_H
2 #define __WINE_NTDEF_H
4 /* fixme: include basestd.h instead */
5 #include "windef.h"
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
11 #define NTAPI __stdcall
13 #ifndef IN
14 #define IN
15 #endif
17 #ifndef OUT
18 #define OUT
19 #endif
21 #ifndef OPTIONAL
22 #define OPTIONAL
23 #endif
25 #ifndef VOID
26 #define VOID void
27 #endif
29 typedef LONG NTSTATUS;
30 typedef NTSTATUS *PNTSTATUS;
32 typedef short CSHORT;
33 typedef CSHORT *PCSHORT;
35 typedef WCHAR * PWCHAR;
37 /* NT lowlevel Strings (handled by Rtl* functions in NTDLL)
38 * If they are zero terminated, Length does not include the terminating 0.
41 typedef struct _STRING {
42 USHORT Length;
43 USHORT MaximumLength;
44 PSTR Buffer;
45 } STRING,*PSTRING,ANSI_STRING,*PANSI_STRING;
47 typedef struct _CSTRING {
48 USHORT Length;
49 USHORT MaximumLength;
50 PCSTR Buffer;
51 } CSTRING,*PCSTRING;
53 typedef struct _UNICODE_STRING {
54 USHORT Length; /* bytes */
55 USHORT MaximumLength; /* bytes */
56 PWSTR Buffer;
57 } UNICODE_STRING,*PUNICODE_STRING;
60 Objects
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
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;
81 typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;
83 #ifdef __cplusplus
85 #endif
87 #endif