#define _NTDEF_
#define _NTDEF_H
+//
+// Use dummy macros, if SAL 2 is not available
+//
+#include <sal.h>
+#if (_SAL_VERSION < 20)
+#include <no_sal2.h>
+#endif
+
//
// NDK Applications must use Unicode
//
#ifndef _MANAGED
#if defined(_M_IX86)
#ifndef FASTCALL
-#define FASTCALL _fastcall
+#define FASTCALL __fastcall
#endif
#else
#define FASTCALL
#define MAXUSHORT 0xffff
#define MAXULONG 0xffffffff
-//
-// CSR Macros
-//
-#define CSR_MAKE_OPCODE(s,m) ((s) << 16) | (m)
-#define CSR_API_ID_FROM_OPCODE(n) ((ULONG)((USHORT)(n)))
-#define CSR_SERVER_ID_FROM_OPCODE(n) (ULONG)((n) >> 16)
-
//
// Basic Types that aren't defined in User-Mode Headers
//
//
#if !defined(_NTSECAPI_H) && !defined(_SUBAUTH_H) && !defined(_NTSECAPI_)
-typedef LONG NTSTATUS, *PNTSTATUS;
+#if !defined(__BCRYPT_H__) && !defined(__WINE_BCRYPT_H)
+typedef _Return_type_success_(return >= 0) long NTSTATUS, *PNTSTATUS;
+#endif
typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
ULONG Buffer;
-} STRING32, *PSTRING32,
- UNICODE_STRING32, *PUNICODE_STRING32,
+} STRING32, *PSTRING32,
+ UNICODE_STRING32, *PUNICODE_STRING32,
ANSI_STRING32, *PANSI_STRING32;
typedef struct _STRING64 {
USHORT MaximumLength;
ULONGLONG Buffer;
} STRING64, *PSTRING64,
- UNICODE_STRING64, *PUNICODE_STRING64,
+ UNICODE_STRING64, *PUNICODE_STRING64,
ANSI_STRING64, *PANSI_STRING64;