2 * PROJECT: ReactOS Native Headers
3 * FILE: include/ndk/umtypes.h
4 * PURPOSE: Definitions needed for Native Headers if target is not Kernel-Mode.
5 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
10 #if !defined(_NTDEF_) && !defined(_NTDEF_H)
14 /* DEPENDENCIES **************************************************************/
18 /* Undef the following to avoid conflects including ntstatus.h with winnt.h */
20 #undef STATUS_ABANDONED_WAIT_0
21 #undef STATUS_USER_APC
24 #undef DBG_EXCEPTION_HANDLED
25 #undef STATUS_SEGMENT_NOTIFICATION
26 #undef DBG_TERMINATE_THREAD
27 #undef DBG_TERMINATE_PROCESS
29 #undef DBG_CONTROL_BREAK
30 #undef DBG_COMMAND_EXCEPTION
31 #undef STATUS_GUARD_PAGE_VIOLATION
32 #undef STATUS_DATATYPE_MISALIGNMENT
33 #undef STATUS_BREAKPOINT
34 #undef STATUS_SINGLE_STEP
35 #undef DBG_EXCEPTION_NOT_HANDLED
36 #undef STATUS_ACCESS_VIOLATION
37 #undef STATUS_IN_PAGE_ERROR
38 #undef STATUS_INVALID_HANDLE
39 #undef STATUS_NO_MEMORY
40 #undef STATUS_ILLEGAL_INSTRUCTION
41 #undef STATUS_NONCONTINUABLE_EXCEPTION
42 #undef STATUS_INVALID_DISPOSITION
43 #undef STATUS_ARRAY_BOUNDS_EXCEEDED
44 #undef STATUS_FLOAT_DENORMAL_OPERAND
45 #undef STATUS_FLOAT_DIVIDE_BY_ZERO
46 #undef STATUS_FLOAT_INEXACT_RESULT
47 #undef STATUS_FLOAT_INVALID_OPERATION
48 #undef STATUS_FLOAT_OVERFLOW
49 #undef STATUS_FLOAT_STACK_CHECK
50 #undef STATUS_FLOAT_UNDERFLOW
51 #undef STATUS_INTEGER_DIVIDE_BY_ZERO
52 #undef STATUS_INTEGER_OVERFLOW
53 #undef STATUS_PRIVILEGED_INSTRUCTION
54 #undef STATUS_STACK_OVERFLOW
55 #undef STATUS_CONTROL_C_EXIT
56 #undef STATUS_FLOAT_MULTIPLE_FAULTS
57 #undef STATUS_FLOAT_MULTIPLE_TRAPS
58 #undef STATUS_REG_NAT_CONSUMPTION
59 #undef STATUS_SXS_EARLY_DEACTIVATION
60 #undef STATUS_SXS_INVALID_DEACTIVATION
64 /* CONSTANTS *****************************************************************/
66 /* NTAPI/NTOSAPI Define */
67 #define DECLSPEC_ADDRSAFE
68 #define NTAPI __stdcall
69 #define FASTCALL __fastcall
70 #if !defined(_NTSYSTEM_)
71 #define NTSYSAPI DECLSPEC_IMPORT
72 #define NTSYSCALLAPI DECLSPEC_IMPORT
75 #if defined(_NTDLLBUILD_)
78 #define NTSYSCALLAPI DECLSPEC_ADDRSAFE
81 #if !defined(_M_CEE_PURE)
82 #define NTAPI_INLINE NTAPI
87 /* Native API Return Value Macros */
88 #define NT_SUCCESS(x) ((x)>=0)
89 #define NT_WARNING(x) ((ULONG)(x)>>30==2)
90 #define NT_ERROR(x) ((ULONG)(x)>>30==3)
95 #define MINSHORT 0x8000
96 #define MAXSHORT 0x7fff
97 #define MINLONG 0x80000000
98 #define MAXLONG 0x7fffffff
100 #define MAXUSHORT 0xffff
101 #define MAXULONG 0xffffffff
103 /* TYPES *********************************************************************/
105 /* Basic Types that aren't defined in User-Mode Headers */
106 typedef CONST
int CINT
;
107 typedef CONST
char *PCSZ
;
109 typedef short CSHORT
;
110 typedef CSHORT
*PCSHORT
;
111 typedef LARGE_INTEGER PHYSICAL_ADDRESS
, *PPHYSICAL_ADDRESS
;
112 typedef LONG KPRIORITY
;
113 typedef LONG NTSTATUS
, *PNTSTATUS
;
114 #define STATIC static
117 #if !defined(_NTSECAPI_H) && !defined(_SUBAUTH_H)
118 typedef struct _UNICODE_STRING
121 USHORT MaximumLength
;
123 } UNICODE_STRING
, *PUNICODE_STRING
;
124 typedef const UNICODE_STRING
* PCUNICODE_STRING
;
126 typedef struct _STRING
129 USHORT MaximumLength
;
133 typedef struct _OBJECT_ATTRIBUTES
136 HANDLE RootDirectory
;
137 PUNICODE_STRING ObjectName
;
139 PVOID SecurityDescriptor
;
140 PVOID SecurityQualityOfService
;
141 } OBJECT_ATTRIBUTES
, *POBJECT_ATTRIBUTES
;
144 typedef STRING ANSI_STRING
;
145 typedef PSTRING PANSI_STRING
;
146 typedef STRING OEM_STRING
;
147 typedef PSTRING POEM_STRING
;
148 typedef CONST STRING
* PCOEM_STRING
;
149 typedef STRING CANSI_STRING
;
150 typedef PSTRING PCANSI_STRING
;