- Add RtlSetProcessCritical
[reactos.git] / reactos / include / ndk / umtypes.h
index 7210563..e05386e 100644 (file)
 
 /* DEPENDENCIES **************************************************************/
 #include <winioctl.h>
-#include <ntstatus.h>
 #include <ntnls.h>
-#define STATIC static
+
+/* Undef the following to avoid conflects including ntstatus.h with winnt.h */
+#undef STATUS_WAIT_0
+#undef STATUS_ABANDONED_WAIT_0
+#undef STATUS_USER_APC
+#undef STATUS_TIMEOUT
+#undef STATUS_PENDING
+#undef DBG_EXCEPTION_HANDLED
+#undef DBG_CONTINUE
+#undef STATUS_SEGMENT_NOTIFICATION
+#undef DBG_TERMINATE_THREAD
+#undef DBG_TERMINATE_PROCESS
+#undef DBG_CONTROL_C
+#undef DBG_CONTROL_BREAK
+#undef DBG_COMMAND_EXCEPTION
+#undef STATUS_GUARD_PAGE_VIOLATION
+#undef STATUS_DATATYPE_MISALIGNMENT
+#undef STATUS_BREAKPOINT
+#undef STATUS_SINGLE_STEP
+#undef DBG_EXCEPTION_NOT_HANDLED
+#undef STATUS_ACCESS_VIOLATION
+#undef STATUS_IN_PAGE_ERROR
+#undef STATUS_INVALID_HANDLE
+#undef STATUS_NO_MEMORY
+#undef STATUS_ILLEGAL_INSTRUCTION
+#undef STATUS_NONCONTINUABLE_EXCEPTION
+#undef STATUS_INVALID_DISPOSITION
+#undef STATUS_ARRAY_BOUNDS_EXCEEDED
+#undef STATUS_FLOAT_DENORMAL_OPERAND
+#undef STATUS_FLOAT_DIVIDE_BY_ZERO
+#undef STATUS_FLOAT_INEXACT_RESULT
+#undef STATUS_FLOAT_INVALID_OPERATION
+#undef STATUS_FLOAT_OVERFLOW
+#undef STATUS_FLOAT_STACK_CHECK
+#undef STATUS_FLOAT_UNDERFLOW
+#undef STATUS_INTEGER_DIVIDE_BY_ZERO
+#undef STATUS_INTEGER_OVERFLOW
+#undef STATUS_PRIVILEGED_INSTRUCTION
+#undef STATUS_STACK_OVERFLOW
+#undef STATUS_CONTROL_C_EXIT
+#undef STATUS_FLOAT_MULTIPLE_FAULTS
+#undef STATUS_FLOAT_MULTIPLE_TRAPS
+#undef STATUS_REG_NAT_CONSUMPTION
+#undef STATUS_SXS_EARLY_DEACTIVATION
+#undef STATUS_SXS_INVALID_DEACTIVATION
+
+#include <ntstatus.h>
 
 /* CONSTANTS *****************************************************************/
 
 /* NTAPI/NTOSAPI Define */
+#define DECLSPEC_ADDRSAFE
 #define NTAPI __stdcall
-#define NTOSAPI
 #define FASTCALL __fastcall
-#define STDCALL __stdcall
+#if !defined(_NTSYSTEM_)
+#define NTSYSAPI     DECLSPEC_IMPORT
+#define NTSYSCALLAPI DECLSPEC_IMPORT
+#else
+#define NTSYSAPI
+#if defined(_NTDLLBUILD_)
+#define NTSYSCALLAPI
+#else
+#define NTSYSCALLAPI DECLSPEC_ADDRSAFE
+#endif
+#endif
+#if !defined(_M_CEE_PURE)
+#define NTAPI_INLINE    NTAPI
+#else
+#define NTAPI_INLINE
+#endif
 
 /* Native API Return Value Macros */
 #define NT_SUCCESS(x) ((x)>=0)
 #define NT_WARNING(x) ((ULONG)(x)>>30==2)
 #define NT_ERROR(x) ((ULONG)(x)>>30==3)
 
+/* Limits */
+#define MINCHAR             0x80
+#define MAXCHAR             0x7f
+#define MINSHORT            0x8000
+#define MAXSHORT            0x7fff
+#define MINLONG             0x80000000
+#define MAXLONG             0x7fffffff
+#define MAXUCHAR            0xff
+#define MAXUSHORT           0xffff
+#define MAXULONG            0xffffffff
+
 /* TYPES *********************************************************************/
 
 /* Basic Types that aren't defined in User-Mode Headers */
 typedef CONST int CINT;
 typedef CONST char *PCSZ;
+typedef ULONG CLONG;
 typedef short CSHORT;
 typedef CSHORT *PCSHORT;
 typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;
+typedef LONG KPRIORITY;
 typedef LONG NTSTATUS, *PNTSTATUS;
+#define STATIC static
 
 /* Basic NT Types */
 #if !defined(_NTSECAPI_H) && !defined(_SUBAUTH_H)
@@ -72,5 +146,8 @@ typedef STRING ANSI_STRING;
 typedef PSTRING PANSI_STRING;
 typedef STRING OEM_STRING;
 typedef PSTRING POEM_STRING;
+typedef CONST STRING* PCOEM_STRING;
+typedef STRING CANSI_STRING;
+typedef PSTRING PCANSI_STRING;
 
 #endif