/** * 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 0x84Lines 1–500 of 5835. Load more
/** * 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 __cplusplus extern "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_DEFINED typedef 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