5835 lines · 188.2 KB · C
RawDownload
/** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the w64 mingw-runtime package. * No warranty is given; refer to the file DISCLAIMER within this package. */#ifndef _WINNT_#define _WINNT_ #ifdef __cplusplusextern "C" {#endif #include <ctype.h>#define ANYSIZE_ARRAY 1 //gr #include <specstrings.h> #define RESTRICTED_POINTER #ifndef __CRT_UNALIGNED#define __CRT_UNALIGNED#endif #if defined(__ia64__) || defined(__x86_64)#define UNALIGNED __CRT_UNALIGNED#ifdef _WIN64#define UNALIGNED64 __CRT_UNALIGNED#else#define UNALIGNED64#endif#else#define UNALIGNED#define UNALIGNED64#endif #if !defined(I_X86_) && !defined(_IA64_) && !defined(_AMD64_) && (defined(_X86_) && !defined(__x86_64))#define I_X86_#endif #if !defined(I_X86_) && !defined(_IA64_) && !defined(_AMD64_) && defined(__x86_64)#define _AMD64_#endif #if !defined(I_X86_) && !(defined(_X86_) && !defined(__x86_64)) && !defined(_AMD64_) && defined(__ia64__)#if !defined(_IA64_)#define _IA64_#endif#endif  #ifdef _WIN64#define MAX_NATURAL_ALIGNMENT sizeof(ULONGLONG)#define MEMORY_ALLOCATION_ALIGNMENT 16#else#define MAX_NATURAL_ALIGNMENT sizeof(DWORD)#define MEMORY_ALLOCATION_ALIGNMENT 8#endif #ifdef __cplusplus#define TYPE_ALIGNMENT(t) __alignof__ (t)#else#define TYPE_ALIGNMENT(t) FIELD_OFFSET(struct { char x; t test; },test)#endif #ifdef _WIN64#ifdef _AMD64_#define PROBE_ALIGNMENT(_s) TYPE_ALIGNMENT(DWORD)#elif defined(_IA64_)#define PROBE_ALIGNMENT(_s) (TYPE_ALIGNMENT(_s) > TYPE_ALIGNMENT(DWORD) ? TYPE_ALIGNMENT(_s) : TYPE_ALIGNMENT(DWORD))#else#error No Target Architecture#endif#define PROBE_ALIGNMENT32(_s) TYPE_ALIGNMENT(DWORD)#else#define PROBE_ALIGNMENT(_s) TYPE_ALIGNMENT(DWORD)#endif #define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1] #include <basetsd.h> #if defined(_X86_) || defined(__ia64__) || defined(__x86_64)#define DECLSPEC_IMPORT __declspec(dllimport)#else#define DECLSPEC_IMPORT#endif #ifndef DECLSPEC_NORETURN#define DECLSPEC_NORETURN __declspec(noreturn)#endif #ifndef DECLSPEC_ALIGN#define DECLSPEC_ALIGN(x) __attribute__ ((aligned(x)))#endif #ifndef SYSTEM_CACHE_ALIGNMENT_SIZE#if defined(_AMD64_) || defined(I_X86_)#define SYSTEM_CACHE_ALIGNMENT_SIZE 64#else#define SYSTEM_CACHE_ALIGNMENT_SIZE 128#endif#endif #ifndef DECLSPEC_CACHEALIGN#define DECLSPEC_CACHEALIGN DECLSPEC_ALIGN(SYSTEM_CACHE_ALIGNMENT_SIZE)#endif #ifndef DECLSPEC_UUID#define DECLSPEC_UUID(x)#endif #ifndef DECLSPEC_NOVTABLE#define DECLSPEC_NOVTABLE#endif #ifndef DECLSPEC_SELECTANY#define DECLSPEC_SELECTANY __declspec(selectany)#endif #ifndef NOP_FUNCTION#define NOP_FUNCTION (void)0#endif #ifndef DECLSPEC_NOINLINE#define DECLSPEC_NOINLINE#endif #ifndef FORCEINLINE#define FORCEINLINE static __inline__#endif #ifndef DECLSPEC_DEPRECATED#define DECLSPEC_DEPRECATED __declspec(deprecated)#define DEPRECATE_SUPPORTED#endif #define DECLSPEC_DEPRECATED_DDK#define PRAGMA_DEPRECATED_DDK 0   typedef void *PVOID;  typedef void *PVOID64; #define NTAPI __stdcall#define NTSYSAPI DECLSPEC_IMPORT#define NTSYSCALLAPI DECLSPEC_IMPORT #ifndef VOID#define VOID void  typedef char CHAR;  typedef short SHORT;  typedef long LONG;#endif   typedef wchar_t WCHAR;  typedef WCHAR *PWCHAR,*LPWCH,*PWCH;  typedef CONST WCHAR *LPCWCH,*PCWCH;  typedef WCHAR *NWPSTR,*LPWSTR,*PWSTR;  typedef PWSTR *PZPWSTR;  typedef CONST PWSTR *PCZPWSTR;  typedef WCHAR UNALIGNED *LPUWSTR,*PUWSTR;  typedef CONST WCHAR *LPCWSTR,*PCWSTR;  typedef PCWSTR *PZPCWSTR;  typedef CONST WCHAR UNALIGNED *LPCUWSTR,*PCUWSTR;  typedef CHAR *PCHAR,*LPCH,*PCH;  typedef CONST CHAR *LPCCH,*PCCH;  typedef CHAR *NPSTR,*LPSTR,*PSTR;  typedef PSTR *PZPSTR;  typedef CONST PSTR *PCZPSTR;  typedef CONST CHAR *LPCSTR,*PCSTR;  typedef PCSTR *PZPCSTR; #ifdef UNICODE#ifndef _TCHAR_DEFINED#define _TCHAR_DEFINED  typedef WCHAR TCHAR,*PTCHAR;  typedef WCHAR TBYTE ,*PTBYTE;#endif   typedef LPWSTR LPTCH,PTCH;  typedef LPWSTR PTSTR,LPTSTR;  typedef LPCWSTR PCTSTR,LPCTSTR;  typedef LPUWSTR PUTSTR,LPUTSTR;  typedef LPCUWSTR PCUTSTR,LPCUTSTR;  typedef LPWSTR LP;#define __TEXT(quote) L##quote#else#ifndef _TCHAR_DEFINED#define _TCHAR_DEFINED  typedef char TCHAR,*PTCHAR;  typedef unsigned char TBYTE ,*PTBYTE;#endif   typedef LPSTR LPTCH,PTCH;  typedef LPSTR PTSTR,LPTSTR,PUTSTR,LPUTSTR;  typedef LPCSTR PCTSTR,LPCTSTR,PCUTSTR,LPCUTSTR;#define __TEXT(quote) quote#endif #define TEXT(quote) __TEXT(quote)   typedef SHORT *PSHORT;  typedef LONG *PLONG;   typedef void *HANDLE;#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name  typedef HANDLE *PHANDLE;   typedef BYTE FCHAR;  typedef WORD FSHORT;  typedef DWORD FLONG; #ifndef _HRESULT_DEFINED#define _HRESULT_DEFINED  typedef LONG HRESULT;#endif #ifdef __cplusplus#define EXTERN_C extern "C"#else#define EXTERN_C extern#endif #define STDMETHODCALLTYPE WINAPI#define STDMETHODVCALLTYPE __cdecl#define STDAPICALLTYPE WINAPI#define STDAPIVCALLTYPE __cdecl#define STDAPI EXTERN_C HRESULT WINAPI#define STDAPI_(type) EXTERN_C type WINAPI#define STDMETHODIMP HRESULT WINAPI#define STDMETHODIMP_(type) type WINAPI#define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE#define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE#define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE#define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE   typedef char CCHAR;#ifndef _LCID_DEFINED#define _LCID_DEFINEDtypedef DWORD LCID;#endif  typedef PDWORD PLCID;#ifndef _LANGID_DEFINED#define _LANGID_DEFINED  typedef WORD LANGID;#endif#define APPLICATION_ERROR_MASK 0x20000000#define ERROR_SEVERITY_SUCCESS 0x00000000#define ERROR_SEVERITY_INFORMATIONAL 0x40000000#define ERROR_SEVERITY_WARNING 0x80000000#define ERROR_SEVERITY_ERROR 0xC0000000 #ifdef __ia64__  __declspec(align(16))#endif    typedef struct _FLOAT128 {      __int64 LowPart;      __int64 HighPart;  } FLOAT128;   typedef FLOAT128 *PFLOAT128; #define _ULONGLONG_#if((!(defined(_X86_) && !defined(__x86_64)) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64)))  typedef __int64 LONGLONG;  typedef unsigned __int64 ULONGLONG; #define MAXLONGLONG (0x7fffffffffffffff)#else   typedef double LONGLONG;  typedef double ULONGLONG;#endif   typedef LONGLONG *PLONGLONG;  typedef ULONGLONG *PULONGLONG;   typedef LONGLONG USN;   typedef union _LARGE_INTEGER {    struct {      DWORD LowPart;      LONG HighPart;    };    struct {      DWORD LowPart;      LONG HighPart;    } u;    LONGLONG QuadPart;  } LARGE_INTEGER;   typedef LARGE_INTEGER *PLARGE_INTEGER;   typedef union _ULARGE_INTEGER {    struct {      DWORD LowPart;      DWORD HighPart;    };    struct {      DWORD LowPart;      DWORD HighPart;    } u;    ULONGLONG QuadPart;  } ULARGE_INTEGER;   typedef ULARGE_INTEGER *PULARGE_INTEGER;   typedef struct _LUID {    DWORD LowPart;    LONG HighPart;  } LUID,*PLUID; #define _DWORDLONG_  typedef ULONGLONG DWORDLONG;  typedef DWORDLONG *PDWORDLONG; #ifdef RC_INVOKED#define Int32x32To64(a,b) ((LONGLONG)((LONG)(a)) *(LONGLONG)((LONG)(b)))#define UInt32x32To64(a,b) ((ULONGLONG)((DWORD)(a)) *(ULONGLONG)((DWORD)(b)))#define Int64ShrlMod32(a,b) ((ULONGLONG)(a) >> (b))#elif (defined(_X86_) && !defined(__x86_64))#define Int32x32To64(a,b) (LONGLONG)((LONGLONG)(LONG)(a) *(LONG)(b))#define UInt32x32To64(a,b) (ULONGLONG)((ULONGLONG)(DWORD)(a) *(DWORD)(b))#define Int64ShrlMod32(a,b) ((DWORDLONG)(a)>>(b))#elif defined(__ia64__) || defined(__x86_64)#define Int32x32To64(a,b) ((LONGLONG)((LONG)(a)) *(LONGLONG)((LONG)(b)))#define UInt32x32To64(a,b) ((ULONGLONG)((DWORD)(a)) *(ULONGLONG)((DWORD)(b)))#define Int64ShrlMod32(a,b) ((ULONGLONG)(a) >> (b))#else#error Must define a target architecture.#endif #define Int64ShraMod32(a,b) ((LONGLONG)(a) >> (b))#define Int64ShllMod32(a,b) ((ULONGLONG)(a) << (b)) #ifdef __cplusplus  extern "C" {#endif #ifdef __x86_64 #define RotateLeft8 _rotl8#define RotateLeft16 _rotl16#define RotateRight8 _rotr8#define RotateRight16 _rotr16     unsigned char __cdecl _rotl8(unsigned char Value,unsigned char Shift);    unsigned short __cdecl _rotl16(unsigned short Value,unsigned char Shift);    unsigned char __cdecl _rotr8(unsigned char Value,unsigned char Shift);    unsigned short __cdecl _rotr16(unsigned short Value,unsigned char Shift);#endif #define RotateLeft32 _rotl#define RotateLeft64 _rotl64#define RotateRight32 _rotr#define RotateRight64 _rotr64     unsigned int __cdecl _rotl(unsigned int Value,int Shift);    unsigned __int64 __cdecl _rotl64(unsigned __int64 Value,int Shift);    unsigned int __cdecl _rotr(unsigned int Value,int Shift);    unsigned __int64 __cdecl _rotr64(unsigned __int64 Value,int Shift);#ifdef __cplusplus  }#endif #define ANSI_NULL ((CHAR)0)#define UNICODE_NULL ((WCHAR)0)#define UNICODE_STRING_MAX_BYTES ((WORD) 65534)#define UNICODE_STRING_MAX_CHARS (32767) #ifndef _BOOLEAN_#define _BOOLEAN_  typedef BYTE BOOLEAN;#endif  typedef BOOLEAN *PBOOLEAN;   typedef struct _LIST_ENTRY {    struct _LIST_ENTRY *Flink;    struct _LIST_ENTRY *Blink;  } LIST_ENTRY,*PLIST_ENTRY,*RESTRICTED_POINTER PRLIST_ENTRY;   typedef struct _SINGLE_LIST_ENTRY {    struct _SINGLE_LIST_ENTRY *Next;  } SINGLE_LIST_ENTRY,*PSINGLE_LIST_ENTRY;   typedef struct LIST_ENTRY32 {    DWORD Flink;    DWORD Blink;  } LIST_ENTRY32;  typedef LIST_ENTRY32 *PLIST_ENTRY32;   typedef struct LIST_ENTRY64 {    ULONGLONG Flink;    ULONGLONG Blink;  } LIST_ENTRY64;  typedef LIST_ENTRY64 *PLIST_ENTRY64; #include <guiddef.h> #ifndef __OBJECTID_DEFINED#define __OBJECTID_DEFINED  typedef struct _OBJECTID {    GUID Lineage;    DWORD Uniquifier;  } OBJECTID;#endif #define MINCHAR 0x80#define MAXCHAR 0x7f#define MINSHORT 0x8000#define MAXSHORT 0x7fff#define MINLONG 0x80000000#define MAXLONG 0x7fffffff#define MAXBYTE 0xff#define MAXWORD 0xffff#define MAXDWORD 0xffffffff #define FIELD_OFFSET(type,field) ((LONG)(LONG_PTR)&(((type *)0)->field))#define RTL_FIELD_SIZE(type,field) (sizeof(((type *)0)->field))#define RTL_SIZEOF_THROUGH_FIELD(type,field) (FIELD_OFFSET(type,field) + RTL_FIELD_SIZE(type,field))#define RTL_CONTAINS_FIELD(Struct,Size,Field) ((((PCHAR)(&(Struct)->Field)) + sizeof((Struct)->Field)) <= (((PCHAR)(Struct))+(Size)))#define RTL_NUMBER_OF_V1(A) (sizeof(A)/sizeof((A)[0]))#define RTL_NUMBER_OF_V2(A) RTL_NUMBER_OF_V1(A) #ifdef ENABLE_RTL_NUMBER_OF_V2#define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V2(A)#else#define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V1(A)#endif #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)#define _ARRAYSIZE(A) RTL_NUMBER_OF_V1(A) #define RTL_FIELD_TYPE(type,field) (((type*)0)->field)#define RTL_NUMBER_OF_FIELD(type,field) (RTL_NUMBER_OF(RTL_FIELD_TYPE(type,field)))#define RTL_PADDING_BETWEEN_FIELDS(T,F1,F2) ((FIELD_OFFSET(T,F2) > FIELD_OFFSET(T,F1)) ? (FIELD_OFFSET(T,F2) - FIELD_OFFSET(T,F1) - RTL_FIELD_SIZE(T,F1)) : (FIELD_OFFSET(T,F1) - FIELD_OFFSET(T,F2) - RTL_FIELD_SIZE(T,F2))) #ifdef __cplusplus#define RTL_CONST_CAST(type) const_cast<type>#else#define RTL_CONST_CAST(type) (type)#endif #define RTL_BITS_OF(sizeOfArg) (sizeof(sizeOfArg) *8)#define RTL_BITS_OF_FIELD(type,field) (RTL_BITS_OF(RTL_FIELD_TYPE(type,field)))#define CONTAINING_RECORD(address,type,field) ((type *)((PCHAR)(address) - (ULONG_PTR)(&((type *)0)->field))) #define VER_SERVER_NT 0x80000000#define VER_WORKSTATION_NT 0x40000000#define VER_SUITE_SMALLBUSINESS 0x00000001#define VER_SUITE_ENTERPRISE 0x00000002#define VER_SUITE_BACKOFFICE 0x00000004#define VER_SUITE_COMMUNICATIONS 0x00000008#define VER_SUITE_TERMINAL 0x00000010#define VER_SUITE_SMALLBUSINESS_RESTRICTED 0x00000020#define VER_SUITE_EMBEDDEDNT 0x00000040#define VER_SUITE_DATACENTER 0x00000080#define VER_SUITE_SINGLEUSERTS 0x00000100#define VER_SUITE_PERSONAL 0x00000200#define VER_SUITE_BLADE 0x00000400#define VER_SUITE_EMBEDDED_RESTRICTED 0x00000800#define VER_SUITE_SECURITY_APPLIANCE 0x00001000#define VER_SUITE_STORAGE_SERVER 0x00002000#define VER_SUITE_COMPUTE_SERVER 0x00004000 #define PRODUCT_UNDEFINED                       0x0 #define PRODUCT_ULTIMATE                        0x1#define PRODUCT_HOME_BASIC                      0x2#define PRODUCT_HOME_PREMIUM                    0x3#define PRODUCT_ENTERPRISE                      0x4#define PRODUCT_HOME_BASIC_N                    0x5#define PRODUCT_BUSINESS                        0x6#define PRODUCT_STANDARD_SERVER                 0x7#define PRODUCT_DATACENTER_SERVER               0x8#define PRODUCT_SMALLBUSINESS_SERVER            0x9#define PRODUCT_ENTERPRISE_SERVER               0xa#define PRODUCT_STARTER                         0xb#define PRODUCT_DATACENTER_SERVER_CORE          0xc#define PRODUCT_STANDARD_SERVER_CORE            0xd#define PRODUCT_ENTERPRISE_SERVER_CORE          0xe#define PRODUCT_ENTERPRISE_SERVER_IA64          0xf#define PRODUCT_BUSINESS_N                      0x10#define PRODUCT_WEB_SERVER                      0x11#define PRODUCT_CLUSTER_SERVER                  0x12#define PRODUCT_HOME_SERVER                     0x13#define PRODUCT_STORAGE_EXPRESS_SERVER          0x14#define PRODUCT_STORAGE_STANDARD_SERVER         0x15#define PRODUCT_STORAGE_WORKGROUP_SERVER        0x16#define PRODUCT_STORAGE_ENTERPRISE_SERVER       0x17#define PRODUCT_SERVER_FOR_SMALLBUSINESS        0x18#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM    0x19 #define PRODUCT_UNLICENSED                      0xabcdabcd #define LANG_NEUTRAL 0x00#define LANG_INVARIANT 0x7f #define LANG_AFRIKAANS 0x36#define LANG_ALBANIAN 0x1c#define LANG_ALSATIAN 0x84

Lines 1–500 of 5835.