9 #define __GNU_EXTENSION __extension__
11 #define __GNU_EXTENSION
16 #if defined(NONAMELESSUNION)
17 #define _ANONYMOUS_UNION
18 #define _UNION_NAME(x) x
19 #define DUMMYUNIONNAME u
20 #define DUMMYUNIONNAME1 u1
21 #define DUMMYUNIONNAME2 u2
22 #define DUMMYUNIONNAME3 u3
23 #define DUMMYUNIONNAME4 u4
24 #define DUMMYUNIONNAME5 u5
25 #define DUMMYUNIONNAME6 u6
26 #define DUMMYUNIONNAME7 u7
27 #define DUMMYUNIONNAME8 u8
28 #define DUMMYUNIONNAME9 u9
30 #define _ANONYMOUS_UNION __GNU_EXTENSION
31 #define _UNION_NAME(x)
32 #define DUMMYUNIONNAME
33 #define DUMMYUNIONNAME1
34 #define DUMMYUNIONNAME2
35 #define DUMMYUNIONNAME3
36 #define DUMMYUNIONNAME4
37 #define DUMMYUNIONNAME5
38 #define DUMMYUNIONNAME6
39 #define DUMMYUNIONNAME7
40 #define DUMMYUNIONNAME8
41 #define DUMMYUNIONNAME9
45#ifndef DUMMYSTRUCTNAME
46 #if defined(NONAMELESSUNION)
47 #define _ANONYMOUS_STRUCT
48 #define _STRUCT_NAME(x) x
49 #define DUMMYSTRUCTNAME s
50 #define DUMMYSTRUCTNAME1 s1
51 #define DUMMYSTRUCTNAME2 s2
52 #define DUMMYSTRUCTNAME3 s3
53 #define DUMMYSTRUCTNAME4 s4
54 #define DUMMYSTRUCTNAME5 s5
56 #define _ANONYMOUS_STRUCT __GNU_EXTENSION
57 #define _STRUCT_NAME(x)
58 #define DUMMYSTRUCTNAME
59 #define DUMMYSTRUCTNAME1
60 #define DUMMYSTRUCTNAME2
61 #define DUMMYSTRUCTNAME3
62 #define DUMMYSTRUCTNAME4
63 #define DUMMYSTRUCTNAME5
67#if defined(STRICT_GS_ENABLED)
68 #pragma strict_gs_check(push, on)
71#if defined(_M_MRX000) || defined(_M_ALPHA) || defined(_M_PPC) || defined(_M_IA64) || defined(_M_AMD64) || defined(_M_ARM) || defined(_M_ARM64)
72 #define ALIGNMENT_MACHINE
73 #define UNALIGNED __unaligned
75 #define UNALIGNED64 __unaligned
80 #undef ALIGNMENT_MACHINE
85#if defined(_WIN64) || defined(_M_ALPHA)
86 #define MAX_NATURAL_ALIGNMENT sizeof(ULONGLONG)
87 #define MEMORY_ALLOCATION_ALIGNMENT 16
89 #define MAX_NATURAL_ALIGNMENT sizeof($ULONG)
90 #define MEMORY_ALLOCATION_ALIGNMENT 8
94#if defined(ENABLE_RESTRICTED) && defined(_M_MRX000) && !defined(MIDL_PASS) && !defined(RC_INVOKED)
95 #define RESTRICTED_POINTER __restrict
97 #define RESTRICTED_POINTER
101#ifndef CONTAINING_RECORD
102 #define CONTAINING_RECORD(address, type, field) \
103 ((type *)(((ULONG_PTR)address) - (ULONG_PTR)(&(((type *)0)->field))))
107#if !defined(__GNUC__) && !defined(__clang__)
108 #define FIELD_OFFSET(Type, Field) ((LONG)(LONG_PTR)&(((Type*) 0)->Field))
110 #define FIELD_OFFSET(Type, Field) ((LONG)__builtin_offsetof(Type, Field))
115 #define TYPE_ALIGNMENT(t) __alignof(t)
117 #define TYPE_ALIGNMENT(t) FIELD_OFFSET(struct { char x; t test; }, test)
120#if defined(_AMD64_) || defined(_X86_)
121 #define PROBE_ALIGNMENT(_s) TYPE_ALIGNMENT($ULONG)
122#elif defined(_IA64_) || defined(_ARM_) || defined(_ARM64_)
123 #define PROBE_ALIGNMENT(_s) max((TYPE_ALIGNMENT(_s), TYPE_ALIGNMENT($ULONG))
124#elif !defined(RC_INVOKED)
125 #error "Unknown architecture"
129 #define PROBE_ALIGNMENT32(_s) TYPE_ALIGNMENT($ULONG)
133 #define EXTERN_C extern "C"
135 #define EXTERN_C extern
138#define NTAPI __stdcall
140#ifndef STDMETHODCALLTYPE
141 #define STDMETHODCALLTYPE __stdcall
142 #define STDMETHODVCALLTYPE __cdecl
143 #define STDAPICALLTYPE __stdcall
144 #define STDAPIVCALLTYPE __cdecl
145 #define STDAPI EXTERN_C HRESULT STDAPICALLTYPE
146 #define STDAPI_(t) EXTERN_C t STDAPICALLTYPE
147 #define STDMETHODIMP HRESULT STDMETHODCALLTYPE
148 #define STDMETHODIMP_(t) t STDMETHODCALLTYPE
149 #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE
150 #define STDAPIV_(t) EXTERN_C t STDAPIVCALLTYPE
151 #define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE
152 #define STDMETHODIMPV_(t) t STDMETHODVCALLTYPE
155#define STDOVERRIDEMETHODIMP __override STDMETHODIMP
156#define STDOVERRIDEMETHODIMP_(t) __override STDMETHODIMP_(t)
157#define IFACEMETHODIMP __override STDMETHODIMP
158#define IFACEMETHODIMP_(t) __override STDMETHODIMP_(t)
159#define STDOVERRIDEMETHODIMPV __override STDMETHODIMPV
160#define STDOVERRIDEMETHODIMPV_(t) __override STDMETHODIMPV_(t)
161#define IFACEMETHODIMPV __override STDMETHODIMPV
162#define IFACEMETHODIMPV_(t) __override STDMETHODIMPV_(t)
166#ifndef DECLSPEC_IMPORT
167 #define DECLSPEC_IMPORT __declspec(dllimport)
170#ifndef DECLSPEC_EXPORT
171 #if defined(__REACTOS__) || defined(__WINESRC__)
172 #define DECLSPEC_EXPORT __declspec(dllexport)
176#define DECLSPEC_NORETURN __declspec(noreturn)
178#ifndef DECLSPEC_ADDRSAFE
179 #if defined(_MSC_VER) && (defined(_M_ALPHA) || defined(_M_AXP64))
180 #define DECLSPEC_ADDRSAFE __declspec(address_safe)
182 #define DECLSPEC_ADDRSAFE
186#ifndef DECLSPEC_NOTHROW
187 #if !defined(MIDL_PASS)
188 #define DECLSPEC_NOTHROW __declspec(nothrow)
190 #define DECLSPEC_NOTHROW
195 #if defined(_MSC_VER)
196 #define NOP_FUNCTION __noop
198 #define NOP_FUNCTION (void)0
202#if !defined(_NTSYSTEM_)
203 #define NTSYSAPI DECLSPEC_IMPORT
204 #define NTSYSCALLAPI DECLSPEC_IMPORT
207 #if defined(_NTDLLBUILD_)
210 #define NTSYSCALLAPI DECLSPEC_ADDRSAFE
216 #define FORCEINLINE __forceinline
219#ifndef DECLSPEC_NOINLINE
220 #if (_MSC_VER >= 1300)
221 #define DECLSPEC_NOINLINE __declspec(noinline)
222 #elif defined(__GNUC__)
223 #define DECLSPEC_NOINLINE __attribute__((noinline))
225 #define DECLSPEC_NOINLINE
229#ifndef DECLSPEC_GUARD_SUPPRESS
230 #if (_MSC_FULL_VER >= 181040116) || defined(_D1VERSIONLKG171_)
231 #define DECLSPEC_GUARD_SUPPRESS __declspec(guard(suppress))
233 #define DECLSPEC_GUARD_SUPPRESS
237#if !defined(_M_CEE_PURE)
238 #define NTAPI_INLINE NTAPI
253#ifndef DECLSPEC_ALIGN
254 #if defined(_MSC_VER) && !defined(MIDL_PASS)
255 #define DECLSPEC_ALIGN(x) __declspec(align(x))
256 #elif defined(__GNUC__)
257 #define DECLSPEC_ALIGN(x) __attribute__((aligned(x)))
259 #define DECLSPEC_ALIGN(x)
263#ifndef SYSTEM_CACHE_ALIGNMENT_SIZE
264 #if defined(_AMD64_) || defined(_X86_)
265 #define SYSTEM_CACHE_ALIGNMENT_SIZE 64
267 #define SYSTEM_CACHE_ALIGNMENT_SIZE 128
271#ifndef DECLSPEC_CACHEALIGN
272 #define DECLSPEC_CACHEALIGN DECLSPEC_ALIGN(SYSTEM_CACHE_ALIGNMENT_SIZE)
276 #if defined(_MSC_VER) && defined(__cplusplus)
277 #define DECLSPEC_UUID(x) __declspec(uuid(x))
279 #define DECLSPEC_UUID(x)
283#ifndef DECLSPEC_NOVTABLE
284 #if defined(_MSC_VER) && defined(__cplusplus)
285 #define DECLSPEC_NOVTABLE __declspec(novtable)
287 #define DECLSPEC_NOVTABLE
291#ifndef DECLSPEC_SELECTANY
292 #if defined(_MSC_VER) || defined(__GNUC__)
293 #define DECLSPEC_SELECTANY __declspec(selectany)
295 #define DECLSPEC_SELECTANY
299#ifndef DECLSPEC_DEPRECATED
300 #if (defined(_MSC_VER) || defined(__GNUC__)) && !defined(MIDL_PASS)
301 #define DECLSPEC_DEPRECATED __declspec(deprecated)
302 #define DEPRECATE_SUPPORTED
304 #define DECLSPEC_DEPRECATED
305 #undef DEPRECATE_SUPPORTED
309#ifdef DEPRECATE_DDK_FUNCTIONS
311 #define DECLSPEC_DEPRECATED_DDK DECLSPEC_DEPRECATED
312 #ifdef DEPRECATE_SUPPORTED
313 #define PRAGMA_DEPRECATED_DDK 1
316 #define DECLSPEC_DEPRECATED_DDK
317 #define PRAGMA_DEPRECATED_DDK 1
320 #define DECLSPEC_DEPRECATED_DDK
321 #define PRAGMA_DEPRECATED_DDK 0
325#define UNREFERENCED_PARAMETER(P) ((void)(P))
326#define DBG_UNREFERENCED_PARAMETER(P) ((void)(P))
327#define DBG_UNREFERENCED_LOCAL_VARIABLE(L) ((void)(L))
336 #define DECLARE_HANDLE(n) typedef struct n##__{int unused;} *n
338 #define DECLARE_HANDLE(n) typedef HANDLE n
347 #if defined(__ROS_LONG64__)
353 #if !defined(MIDL_PASS)
383#ifndef _HRESULT_DEFINED
384 #define _HRESULT_DEFINED
417typedef wchar_t WCHAR;
438#if (_WIN32_WINNT >= 0x0600) || (defined(__cplusplus) && defined(WINDOWS_ENABLE_CPLUSPLUS))
441 typedef unsigned long UCSCHAR, *PUCSCHAR, *PUCSSTR;
442 typedef const UCSCHAR *PCUCSCHAR, *PCUCSSTR;
443 typedef UCSCHAR
UNALIGNED *PUUCSCHAR, *PUUCSSTR;
444 typedef const UCSCHAR
UNALIGNED *PCUUCSCHAR, *PCUUCSSTR;
445 #define UCSCHAR_INVALID_CHARACTER (0xffffffff)
446 #define MIN_UCSCHAR (0)
447 #define MAX_UCSCHAR (0x0010FFFF)
452 #ifndef _TCHAR_DEFINED
460 #define _TCHAR_DEFINED
479 #define __TEXT(quote) L##quote
483 #ifndef _TCHAR_DEFINED
491 #define _TCHAR_DEFINED
502 #define __TEXT(quote) quote
506#define TEXT(quote) __TEXT(quote)
511typedef CCHAR *PCCHAR;
520#ifndef __COMPARTMENT_ID_DEFINED__
521#define __COMPARTMENT_ID_DEFINED__
529#ifndef __OBJECTID_DEFINED
530#define __OBJECTID_DEFINED
538 #pragma warning(push)
539 #pragma warning(disable:4201)
553#if defined(MIDL_PASS)
571#if defined(MIDL_PASS)
600#define APPLICATION_ERROR_MASK 0x20000000
601#define ERROR_SEVERITY_SUCCESS 0x00000000
602#define ERROR_SEVERITY_INFORMATIONAL 0x40000000
603#define ERROR_SEVERITY_WARNING 0x80000000
604#define ERROR_SEVERITY_ERROR 0xC0000000
608#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
609#define NT_INFORMATION(Status) ((((ULONG)(Status)) >> 30) == 1)
610#define NT_WARNING(Status) ((((ULONG)(Status)) >> 30) == 2)
611#define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3)
614#define ANSI_NULL ((CHAR)0)
615#define UNICODE_NULL ((WCHAR)0)
616#define UNICODE_STRING_MAX_BYTES ((USHORT) 65534)
617#define UNICODE_STRING_MAX_CHARS (32767)
641typedef struct _SINGLE_LIST_ENTRY32 {
646typedef struct _PROCESSOR_NUMBER {
652#define ALL_PROCESSOR_GROUPS 0xffff
675#define RTL_FIELD_TYPE(type, field) (((type*)0)->field)
676#define RTL_BITS_OF(sizeOfArg) (sizeof(sizeOfArg) * 8)
677#define RTL_BITS_OF_FIELD(type, field) (RTL_BITS_OF(RTL_FIELD_TYPE(type, field)))
678#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
680#define RTL_SIZEOF_THROUGH_FIELD(type, field) \
681 (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field))
683#define RTL_CONTAINS_FIELD(Struct, Size, Field) \
684 ( (((PCHAR)(&(Struct)->Field)) + sizeof((Struct)->Field)) <= (((PCHAR)(Struct))+(Size)) )
686#define RTL_NUMBER_OF_V1(A) (sizeof(A)/sizeof((A)[0]))
689 #define RTL_NUMBER_OF_V2(A) \
690 (({ int _check_array_type[__builtin_types_compatible_p(typeof(A), typeof(&A[0])) ? -1 : 1]; (void)_check_array_type; }), \
692#elif defined(__cplusplus)
694 template <
typename T,
size_t N>
695 static char (& SAFE_RTL_NUMBER_OF(
T (&)[
N]))[
N];
697 #define RTL_NUMBER_OF_V2(A) sizeof(SAFE_RTL_NUMBER_OF(A))
699 #define RTL_NUMBER_OF_V2(A) RTL_NUMBER_OF_V1(A)
702#ifdef ENABLE_RTL_NUMBER_OF_V2
703 #define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V2(A)
705 #define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V1(A)
708#define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)
709#define _ARRAYSIZE(A) RTL_NUMBER_OF_V1(A)
711#define RTL_NUMBER_OF_FIELD(type, field) \
712 (RTL_NUMBER_OF(RTL_FIELD_TYPE(type, field)))
714#define RTL_PADDING_BETWEEN_FIELDS(type, field1, field2) \
715 ((FIELD_OFFSET(type, field2) > FIELD_OFFSET(type, field1)) \
716 ? (FIELD_OFFSET(type, field2) - FIELD_OFFSET(type, field1) - RTL_FIELD_SIZE(type, field1)) \
717 : (FIELD_OFFSET(type, field1) - FIELD_OFFSET(type, field2) - RTL_FIELD_SIZE(type, field2)))
719#if defined(__cplusplus)
720 #define RTL_CONST_CAST(type) const_cast<type>
722 #define RTL_CONST_CAST(type) (type)
726#define DEFINE_ENUM_FLAG_OPERATORS(_ENUMTYPE) \
728 inline _ENUMTYPE operator|(_ENUMTYPE a, _ENUMTYPE b) { return _ENUMTYPE(((int)a) | ((int)b)); } \
729 inline _ENUMTYPE &operator|=(_ENUMTYPE &a, _ENUMTYPE b) { return (_ENUMTYPE &)(((int &)a) |= ((int)b)); } \
730 inline _ENUMTYPE operator&(_ENUMTYPE a, _ENUMTYPE b) { return _ENUMTYPE(((int)a) & ((int)b)); } \
731 inline _ENUMTYPE &operator&=(_ENUMTYPE &a, _ENUMTYPE b) { return (_ENUMTYPE &)(((int &)a) &= ((int)b)); } \
732 inline _ENUMTYPE operator~(_ENUMTYPE a) { return _ENUMTYPE(~((int)a)); } \
733 inline _ENUMTYPE operator^(_ENUMTYPE a, _ENUMTYPE b) { return _ENUMTYPE(((int)a) ^ ((int)b)); } \
734 inline _ENUMTYPE &operator^=(_ENUMTYPE &a, _ENUMTYPE b) { return (_ENUMTYPE &)(((int &)a) ^= ((int)b)); } \
737#define DEFINE_ENUM_FLAG_OPERATORS(_ENUMTYPE)
740#define COMPILETIME_OR_2FLAGS(a,b) ((UINT)(a)|(UINT)(b))
741#define COMPILETIME_OR_3FLAGS(a,b,c) ((UINT)(a)|(UINT)(b)|(UINT)(c))
742#define COMPILETIME_OR_4FLAGS(a,b,c,d) ((UINT)(a)|(UINT)(b)|(UINT)(c)|(UINT)(d))
743#define COMPILETIME_OR_5FLAGS(a,b,c,d,e) ((UINT)(a)|(UINT)(b)|(UINT)(c)|(UINT)(d)|(UINT)(e))
748#define MINSHORT 0x8000
749#define MAXSHORT 0x7fff
750#define MINLONG 0x80000000
751#define MAXLONG 0x7fffffff
754#define MAXUSHORT 0xffff
755#define MAXULONG 0xffffffff
759#define MAXWORD 0xffff
760#define MAXDWORD 0xffffffff
762#define MAXLONGLONG (0x7fffffffffffffffLL)
765#if defined(_M_IX86) && !defined(_M_ARM) && !defined(_M_ARM64) && \
766 !defined(MIDL_PASS)&& !defined(RC_INVOKED) && !defined(_M_CEE_PURE)
767 #define Int32x32To64(a,b) __emul(a,b)
768 #define UInt32x32To64(a,b) __emulu(a,b)
770 #define Int32x32To64(a,b) (((__int64)(long)(a))*((__int64)(long)(b)))
771 #define UInt32x32To64(a,b) ((unsigned __int64)(unsigned int)(a)*(unsigned __int64)(unsigned int)(b))
774#if defined(MIDL_PASS)|| defined(RC_INVOKED) || defined(_M_CEE_PURE) || defined(_M_ARM)
776 #define Int64ShllMod32(a,b) ((unsigned __int64)(a)<<(b))
777 #define Int64ShraMod32(a,b) (((__int64)(a))>>(b))
778 #define Int64ShrlMod32(a,b) (((unsigned __int64)(a))>>(b))
781 #define Int64ShllMod32(a,b) __ll_lshift(a,b)
782 #define Int64ShraMod32(a,b) __ll_rshift(a,b)
783 #define Int64ShrlMod32(a,b) __ull_rshift(a,b)
786#define RotateLeft32 _rotl
787#define RotateLeft64 _rotl64
788#define RotateRight32 _rotr
789#define RotateRight64 _rotr64
792 #define RotateLeft8 _rotl8
793 #define RotateLeft16 _rotl16
794 #define RotateRight8 _rotr8
795 #define RotateRight16 _rotr16
799#define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1]
803 #define DEFAULT_UNREACHABLE default: __assume(0)
804#elif defined(__clang__) || (defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5))))
805 #define DEFAULT_UNREACHABLE default: __builtin_unreachable()
807 #define DEFAULT_UNREACHABLE default: break
810#if defined(__GNUC__) || defined(__clang__)
811 #define UNREACHABLE __builtin_unreachable()
812#elif defined(_MSC_VER)
813 #define UNREACHABLE __assume(0)
818#define VER_WORKSTATION_NT 0x40000000
819#define VER_SERVER_NT 0x80000000
820#define VER_SUITE_SMALLBUSINESS 0x00000001
821#define VER_SUITE_ENTERPRISE 0x00000002
822#define VER_SUITE_BACKOFFICE 0x00000004
823#define VER_SUITE_COMMUNICATIONS 0x00000008
824#define VER_SUITE_TERMINAL 0x00000010
825#define VER_SUITE_SMALLBUSINESS_RESTRICTED 0x00000020
826#define VER_SUITE_EMBEDDEDNT 0x00000040
827#define VER_SUITE_DATACENTER 0x00000080
828#define VER_SUITE_SINGLEUSERTS 0x00000100
829#define VER_SUITE_PERSONAL 0x00000200
830#define VER_SUITE_BLADE 0x00000400
831#define VER_SUITE_EMBEDDED_RESTRICTED 0x00000800
832#define VER_SUITE_SECURITY_APPLIANCE 0x00001000
833#define VER_SUITE_STORAGE_SERVER 0x00002000
834#define VER_SUITE_COMPUTE_SERVER 0x00004000
835#define VER_SUITE_WH_SERVER 0x00008000
838#define PRODUCT_UNDEFINED 0x00000000
839#define PRODUCT_ULTIMATE 0x00000001
840#define PRODUCT_HOME_BASIC 0x00000002
841#define PRODUCT_HOME_PREMIUM 0x00000003
842#define PRODUCT_ENTERPRISE 0x00000004
843#define PRODUCT_HOME_BASIC_N 0x00000005
844#define PRODUCT_BUSINESS 0x00000006
845#define PRODUCT_STANDARD_SERVER 0x00000007
846#define PRODUCT_DATACENTER_SERVER 0x00000008
847#define PRODUCT_SMALLBUSINESS_SERVER 0x00000009
848#define PRODUCT_ENTERPRISE_SERVER 0x0000000A
849#define PRODUCT_STARTER 0x0000000B
850#define PRODUCT_DATACENTER_SERVER_CORE 0x0000000C
851#define PRODUCT_STANDARD_SERVER_CORE 0x0000000D
852#define PRODUCT_ENTERPRISE_SERVER_CORE 0x0000000E
853#define PRODUCT_ENTERPRISE_SERVER_IA64 0x0000000F
854#define PRODUCT_BUSINESS_N 0x00000010
855#define PRODUCT_WEB_SERVER 0x00000011
856#define PRODUCT_CLUSTER_SERVER 0x00000012
857#define PRODUCT_HOME_SERVER 0x00000013
858#define PRODUCT_STORAGE_EXPRESS_SERVER 0x00000014
859#define PRODUCT_STORAGE_STANDARD_SERVER 0x00000015
860#define PRODUCT_STORAGE_WORKGROUP_SERVER 0x00000016
861#define PRODUCT_STORAGE_ENTERPRISE_SERVER 0x00000017
862#define PRODUCT_SERVER_FOR_SMALLBUSINESS 0x00000018
863#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM 0x00000019
864#define PRODUCT_HOME_PREMIUM_N 0x0000001A
865#define PRODUCT_ENTERPRISE_N 0x0000001B
866#define PRODUCT_ULTIMATE_N 0x0000001C
867#define PRODUCT_WEB_SERVER_CORE 0x0000001D
868#define PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT 0x0000001E
869#define PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY 0x0000001F
870#define PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING 0x00000020
871#define PRODUCT_SERVER_FOUNDATION 0x00000021
872#define PRODUCT_HOME_PREMIUM_SERVER 0x00000022
873#define PRODUCT_SERVER_FOR_SMALLBUSINESS_V 0x00000023
874#define PRODUCT_STANDARD_SERVER_V 0x00000024
875#define PRODUCT_DATACENTER_SERVER_V 0x00000025
876#define PRODUCT_ENTERPRISE_SERVER_V 0x00000026
877#define PRODUCT_DATACENTER_SERVER_CORE_V 0x00000027
878#define PRODUCT_STANDARD_SERVER_CORE_V 0x00000028
879#define PRODUCT_ENTERPRISE_SERVER_CORE_V 0x00000029
880#define PRODUCT_HYPERV 0x0000002A
881#define PRODUCT_STORAGE_EXPRESS_SERVER_CORE 0x0000002B
882#define PRODUCT_STORAGE_STANDARD_SERVER_CORE 0x0000002C
883#define PRODUCT_STORAGE_WORKGROUP_SERVER_CORE 0x0000002D
884#define PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE 0x0000002E
885#define PRODUCT_STARTER_N 0x0000002F
886#define PRODUCT_PROFESSIONAL 0x00000030
887#define PRODUCT_PROFESSIONAL_N 0x00000031
888#define PRODUCT_SB_SOLUTION_SERVER 0x00000032
889#define PRODUCT_SERVER_FOR_SB_SOLUTIONS 0x00000033
890#define PRODUCT_STANDARD_SERVER_SOLUTIONS 0x00000034
891#define PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE 0x00000035
892#define PRODUCT_SB_SOLUTION_SERVER_EM 0x00000036
893#define PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM 0x00000037
894#define PRODUCT_SOLUTION_EMBEDDEDSERVER 0x00000038
895#define PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE 0x00000039
896#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT 0x0000003B
897#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL 0x0000003C
898#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC 0x0000003D
899#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC 0x0000003E
900#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE 0x0000003F
901#define PRODUCT_CLUSTER_SERVER_V 0x00000040
902#define PRODUCT_EMBEDDED 0x00000041
903#define PRODUCT_STARTER_E 0x00000042
904#define PRODUCT_HOME_BASIC_E 0x00000043
905#define PRODUCT_HOME_PREMIUM_E 0x00000044
906#define PRODUCT_PROFESSIONAL_E 0x00000045
907#define PRODUCT_ENTERPRISE_E 0x00000046
908#define PRODUCT_ULTIMATE_E 0x00000047
909#define PRODUCT_ENTERPRISE_EVALUATION 0x00000048
910#define PRODUCT_MULTIPOINT_STANDARD_SERVER 0x0000004C
911#define PRODUCT_MULTIPOINT_PREMIUM_SERVER 0x0000004D
912#define PRODUCT_STANDARD_EVALUATION_SERVER 0x0000004F
913#define PRODUCT_DATACENTER_EVALUATION_SERVER 0x00000050
914#define PRODUCT_ENTERPRISE_N_EVALUATION 0x00000054
915#define PRODUCT_EMBEDDED_AUTOMOTIVE 0x00000055
916#define PRODUCT_EMBEDDED_INDUSTRY_A 0x00000056
917#define PRODUCT_THINPC 0x00000057
918#define PRODUCT_EMBEDDED_A 0x00000058
919#define PRODUCT_EMBEDDED_INDUSTRY 0x00000059
920#define PRODUCT_EMBEDDED_E 0x0000005A
921#define PRODUCT_EMBEDDED_INDUSTRY_E 0x0000005B
922#define PRODUCT_EMBEDDED_INDUSTRY_A_E 0x0000005C
923#define PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER 0x0000005F
924#define PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER 0x00000060
925#define PRODUCT_CORE_ARM 0x00000061
926#define PRODUCT_CORE_N 0x00000062
927#define PRODUCT_CORE_COUNTRYSPECIFIC 0x00000063
928#define PRODUCT_CORE_SINGLELANGUAGE 0x00000064
929#define PRODUCT_CORE 0x00000065
930#define PRODUCT_PROFESSIONAL_WMC 0x00000067
931#define PRODUCT_ENTERPRISE_S_N_EVALUATION 0x00000082
932#define PRODUCT_UNLICENSED 0xABCDABCD
935#define MAKELANGID(p, s) ((((USHORT)(s)) << 10) | (USHORT)(p))
936#define PRIMARYLANGID(lgid) ((USHORT)(lgid) & 0x3ff)
937#define SUBLANGID(lgid) ((USHORT)(lgid) >> 10)
938#define MAKELCID(lgid, srtid) (($ULONG)(((($ULONG)((USHORT)(srtid))) << 16) | \
939 (($ULONG)((USHORT)(lgid)))))
940#define MAKESORTLCID(lgid, srtid, ver) \
941 (($ULONG)((MAKELCID(lgid, srtid)) | \
942 ((($ULONG)((USHORT)(ver))) << 20)))
943#define LANGIDFROMLCID(lcid) ((USHORT)(lcid))
944#define SORTIDFROMLCID(lcid) ((USHORT)(((($ULONG)(lcid)) >> 16) & 0xf))
945#define SORTVERSIONFROMLCID(lcid) ((USHORT)(((($ULONG)(lcid)) >> 20) & 0xf))
947#define NLS_VALID_LOCALE_MASK 0x000fffff
948#define LOCALE_NAME_MAX_LENGTH 85
951#define LANG_NEUTRAL 0x00
952#define LANG_INVARIANT 0x7f
953#define LANG_AFRIKAANS 0x36
954#define LANG_ALBANIAN 0x1c
955#define LANG_ALSATIAN 0x84
956#define LANG_AMHARIC 0x5e
957#define LANG_ARABIC 0x01
958#define LANG_ARMENIAN 0x2b
959#define LANG_ASSAMESE 0x4d
960#define LANG_AZERI 0x2c
961#define LANG_AZERBAIJANI 0x2c
962#define LANG_BANGLA 0x45
963#define LANG_BASHKIR 0x6d
964#define LANG_BASQUE 0x2d
965#define LANG_BELARUSIAN 0x23
966#define LANG_BENGALI 0x45
967#define LANG_BOSNIAN 0x1a
968#define LANG_BOSNIAN_NEUTRAL 0x781a
969#define LANG_BRETON 0x7e
970#define LANG_BULGARIAN 0x02
971#define LANG_CATALAN 0x03
972#define LANG_CENTRAL_KURDISH 0x92
973#define LANG_CHEROKEE 0x5c
974#define LANG_CHINESE 0x04
975#define LANG_CHINESE_SIMPLIFIED 0x04
976#define LANG_CHINESE_TRADITIONAL 0x7c04
977#define LANG_CORSICAN 0x83
978#define LANG_CROATIAN 0x1a
979#define LANG_CZECH 0x05
980#define LANG_DANISH 0x06
981#define LANG_DARI 0x8c
982#define LANG_DIVEHI 0x65
983#define LANG_DUTCH 0x13
984#define LANG_ENGLISH 0x09
985#define LANG_ESTONIAN 0x25
986#define LANG_FAEROESE 0x38
987#define LANG_FARSI 0x29
988#define LANG_FILIPINO 0x64
989#define LANG_FINNISH 0x0b
990#define LANG_FRENCH 0x0c
991#define LANG_FRISIAN 0x62
992#define LANG_FULAH 0x67
993#define LANG_GALICIAN 0x56
994#define LANG_GEORGIAN 0x37
995#define LANG_GERMAN 0x07
996#define LANG_GREEK 0x08
997#define LANG_GREENLANDIC 0x6f
998#define LANG_GUJARATI 0x47
999#define LANG_HAUSA 0x68
1000#define LANG_HAWAIIAN 0x75
1001#define LANG_HEBREW 0x0d
1002#define LANG_HINDI 0x39
1003#define LANG_HUNGARIAN 0x0e
1004#define LANG_ICELANDIC 0x0f
1005#define LANG_IGBO 0x70
1006#define LANG_INDONESIAN 0x21
1007#define LANG_INUKTITUT 0x5d
1008#define LANG_IRISH 0x3c
1009#define LANG_ITALIAN 0x10
1010#define LANG_JAPANESE 0x11
1011#define LANG_KANNADA 0x4b
1012#define LANG_KASHMIRI 0x60
1013#define LANG_KAZAK 0x3f
1014#define LANG_KHMER 0x53
1015#define LANG_KICHE 0x86
1016#define LANG_KINYARWANDA 0x87
1017#define LANG_KONKANI 0x57
1018#define LANG_KOREAN 0x12
1019#define LANG_KYRGYZ 0x40
1020#define LANG_LAO 0x54
1021#define LANG_LATVIAN 0x26
1022#define LANG_LITHUANIAN 0x27
1023#define LANG_LOWER_SORBIAN 0x2e
1024#define LANG_LUXEMBOURGISH 0x6e
1025#define LANG_MACEDONIAN 0x2f
1026#define LANG_MALAY 0x3e
1027#define LANG_MALAYALAM 0x4c
1028#define LANG_MALTESE 0x3a
1029#define LANG_MANIPURI 0x58
1030#define LANG_MAORI 0x81
1031#define LANG_MAPUDUNGUN 0x7a
1032#define LANG_MARATHI 0x4e
1033#define LANG_MOHAWK 0x7c
1034#define LANG_MONGOLIAN 0x50
1035#define LANG_NEPALI 0x61
1036#define LANG_NORWEGIAN 0x14
1037#define LANG_OCCITAN 0x82
1038#define LANG_ODIA 0x48
1039#define LANG_ORIYA 0x48
1040#define LANG_PASHTO 0x63
1041#define LANG_PERSIAN 0x29
1042#define LANG_POLISH 0x15
1043#define LANG_PORTUGUESE 0x16
1044#define LANG_PULAR 0x67
1045#define LANG_PUNJABI 0x46
1046#define LANG_QUECHUA 0x6b
1047#define LANG_ROMANIAN 0x18
1048#define LANG_ROMANSH 0x17
1049#define LANG_RUSSIAN 0x19
1050#define LANG_SAKHA 0x85
1051#define LANG_SAMI 0x3b
1052#define LANG_SANSKRIT 0x4f
1053#define LANG_SCOTTISH_GAELIC 0x91
1054#define LANG_SERBIAN 0x1a
1055#define LANG_SERBIAN_NEUTRAL 0x7c1a
1056#define LANG_SINDHI 0x59
1057#define LANG_SINHALESE 0x5b
1058#define LANG_SLOVAK 0x1b
1059#define LANG_SLOVENIAN 0x24
1060#define LANG_SOTHO 0x6c
1061#define LANG_SPANISH 0x0a
1062#define LANG_SWAHILI 0x41
1063#define LANG_SWEDISH 0x1d
1064#define LANG_SYRIAC 0x5a
1065#define LANG_TAJIK 0x28
1066#define LANG_TAMAZIGHT 0x5f
1067#define LANG_TAMIL 0x49
1068#define LANG_TATAR 0x44
1069#define LANG_TELUGU 0x4a
1070#define LANG_THAI 0x1e
1071#define LANG_TIBETAN 0x51
1072#define LANG_TIGRIGNA 0x73
1073#define LANG_TIGRINYA 0x73
1074#define LANG_TSWANA 0x32
1075#define LANG_TURKISH 0x1f
1076#define LANG_TURKMEN 0x42
1077#define LANG_UIGHUR 0x80
1078#define LANG_UKRAINIAN 0x22
1079#define LANG_UPPER_SORBIAN 0x2e
1080#define LANG_URDU 0x20
1081#define LANG_UZBEK 0x43
1082#define LANG_VALENCIAN 0x03
1083#define LANG_VIETNAMESE 0x2a
1084#define LANG_WELSH 0x52
1085#define LANG_WOLOF 0x88
1086#define LANG_XHOSA 0x34
1087#define LANG_YAKUT 0x85
1089#define LANG_YORUBA 0x6a
1090#define LANG_ZULU 0x35
1095#define LANG_MALAGASY 0x8d
1098#define LANG_SUTU 0x30
1099#define LANG_TSONGA 0x31
1100#define LANG_VENDA 0x33
1103#define LANG_ASTURIAN 0xa5
1104#define LANG_ESPERANTO 0x8f
1105#define LANG_WALON 0x90
1106#define LANG_CORNISH 0x92
1107#define LANG_MANX_GAELIC 0x94
1110#define SUBLANG_NEUTRAL 0x00
1111#define SUBLANG_DEFAULT 0x01
1112#define SUBLANG_SYS_DEFAULT 0x02
1113#define SUBLANG_CUSTOM_DEFAULT 0x03
1114#define SUBLANG_CUSTOM_UNSPECIFIED 0x04
1115#define SUBLANG_UI_CUSTOM_DEFAULT 0x05
1116#define SUBLANG_AFRIKAANS_SOUTH_AFRICA 0x01
1117#define SUBLANG_ALBANIAN_ALBANIA 0x01
1118#define SUBLANG_ALSATIAN_FRANCE 0x01
1119#define SUBLANG_AMHARIC_ETHIOPIA 0x01
1120#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01
1121#define SUBLANG_ARABIC_IRAQ 0x02
1122#define SUBLANG_ARABIC_EGYPT 0x03
1123#define SUBLANG_ARABIC_LIBYA 0x04
1124#define SUBLANG_ARABIC_ALGERIA 0x05
1125#define SUBLANG_ARABIC_MOROCCO 0x06
1126#define SUBLANG_ARABIC_TUNISIA 0x07
1127#define SUBLANG_ARABIC_OMAN 0x08
1128#define SUBLANG_ARABIC_YEMEN 0x09
1129#define SUBLANG_ARABIC_SYRIA 0x0a
1130#define SUBLANG_ARABIC_JORDAN 0x0b
1131#define SUBLANG_ARABIC_LEBANON 0x0c
1132#define SUBLANG_ARABIC_KUWAIT 0x0d
1133#define SUBLANG_ARABIC_UAE 0x0e
1134#define SUBLANG_ARABIC_BAHRAIN 0x0f
1135#define SUBLANG_ARABIC_QATAR 0x10
1136#define SUBLANG_ARMENIAN_ARMENIA 0x01
1137#define SUBLANG_ASSAMESE_INDIA 0x01
1138#define SUBLANG_AZERI_LATIN 0x01
1139#define SUBLANG_AZERI_CYRILLIC 0x02
1140#define SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN 0x01
1141#define SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC 0x02
1142#define SUBLANG_BANGLA_INDIA 0x01
1143#define SUBLANG_BANGLA_BANGLADESH 0x02
1144#define SUBLANG_BASHKIR_RUSSIA 0x01
1145#define SUBLANG_BASQUE_BASQUE 0x01
1146#define SUBLANG_BELARUSIAN_BELARUS 0x01
1147#define SUBLANG_BENGALI_INDIA 0x01
1148#define SUBLANG_BENGALI_BANGLADESH 0x02
1149#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05
1150#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08
1151#define SUBLANG_BRETON_FRANCE 0x01
1152#define SUBLANG_BULGARIAN_BULGARIA 0x01
1153#define SUBLANG_CATALAN_CATALAN 0x01
1154#define SUBLANG_CENTRAL_KURDISH_IRAQ 0x01
1155#define SUBLANG_CHEROKEE_CHEROKEE 0x01
1156#define SUBLANG_CHINESE_TRADITIONAL 0x01
1157#define SUBLANG_CHINESE_SIMPLIFIED 0x02
1158#define SUBLANG_CHINESE_HONGKONG 0x03
1159#define SUBLANG_CHINESE_SINGAPORE 0x04
1160#define SUBLANG_CHINESE_MACAU 0x05
1161#define SUBLANG_CORSICAN_FRANCE 0x01
1162#define SUBLANG_CZECH_CZECH_REPUBLIC 0x01
1163#define SUBLANG_CROATIAN_CROATIA 0x01
1164#define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04
1165#define SUBLANG_DANISH_DENMARK 0x01
1166#define SUBLANG_DARI_AFGHANISTAN 0x01
1167#define SUBLANG_DIVEHI_MALDIVES 0x01
1168#define SUBLANG_DUTCH 0x01
1169#define SUBLANG_DUTCH_BELGIAN 0x02
1170#define SUBLANG_ENGLISH_US 0x01
1171#define SUBLANG_ENGLISH_UK 0x02
1172#define SUBLANG_ENGLISH_AUS 0x03
1173#define SUBLANG_ENGLISH_CAN 0x04
1174#define SUBLANG_ENGLISH_NZ 0x05
1175#define SUBLANG_ENGLISH_EIRE 0x06
1176#define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07
1177#define SUBLANG_ENGLISH_JAMAICA 0x08
1178#define SUBLANG_ENGLISH_CARIBBEAN 0x09
1179#define SUBLANG_ENGLISH_BELIZE 0x0a
1180#define SUBLANG_ENGLISH_TRINIDAD 0x0b
1181#define SUBLANG_ENGLISH_ZIMBABWE 0x0c
1182#define SUBLANG_ENGLISH_PHILIPPINES 0x0d
1183#define SUBLANG_ENGLISH_INDIA 0x10
1184#define SUBLANG_ENGLISH_MALAYSIA 0x11
1185#define SUBLANG_ENGLISH_SINGAPORE 0x12
1186#define SUBLANG_ESTONIAN_ESTONIA 0x01
1187#define SUBLANG_FAEROESE_FAROE_ISLANDS 0x01
1188#define SUBLANG_FILIPINO_PHILIPPINES 0x01
1189#define SUBLANG_FINNISH_FINLAND 0x01
1190#define SUBLANG_FRENCH 0x01
1191#define SUBLANG_FRENCH_BELGIAN 0x02
1192#define SUBLANG_FRENCH_CANADIAN 0x03
1193#define SUBLANG_FRENCH_SWISS 0x04
1194#define SUBLANG_FRENCH_LUXEMBOURG 0x05
1195#define SUBLANG_FRENCH_MONACO 0x06
1196#define SUBLANG_FRISIAN_NETHERLANDS 0x01
1197#define SUBLANG_FULAH_SENEGAL 0x02
1198#define SUBLANG_GALICIAN_GALICIAN 0x01
1199#define SUBLANG_GEORGIAN_GEORGIA 0x01
1200#define SUBLANG_GERMAN 0x01
1201#define SUBLANG_GERMAN_SWISS 0x02
1202#define SUBLANG_GERMAN_AUSTRIAN 0x03
1203#define SUBLANG_GERMAN_LUXEMBOURG 0x04
1204#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05
1205#define SUBLANG_GREEK_GREECE 0x01
1206#define SUBLANG_GREENLANDIC_GREENLAND 0x01
1207#define SUBLANG_GUJARATI_INDIA 0x01
1208#define SUBLANG_HAUSA_NIGERIA_LATIN 0x01
1209#define SUBLANG_HAWAIIAN_US 0x01
1210#define SUBLANG_HEBREW_ISRAEL 0x01
1211#define SUBLANG_HINDI_INDIA 0x01
1212#define SUBLANG_HUNGARIAN_HUNGARY 0x01
1213#define SUBLANG_ICELANDIC_ICELAND 0x01
1214#define SUBLANG_IGBO_NIGERIA 0x01
1215#define SUBLANG_INDONESIAN_INDONESIA 0x01
1216#define SUBLANG_INUKTITUT_CANADA 0x01
1217#define SUBLANG_INUKTITUT_CANADA_LATIN 0x02
1218#define SUBLANG_IRISH_IRELAND 0x02
1219#define SUBLANG_ITALIAN 0x01
1220#define SUBLANG_ITALIAN_SWISS 0x02
1221#define SUBLANG_JAPANESE_JAPAN 0x01
1222#define SUBLANG_KANNADA_INDIA 0x01
1223#define SUBLANG_KASHMIRI_SASIA 0x02
1224#define SUBLANG_KASHMIRI_INDIA 0x02
1225#define SUBLANG_KAZAK_KAZAKHSTAN 0x01
1226#define SUBLANG_KHMER_CAMBODIA 0x01
1227#define SUBLANG_KICHE_GUATEMALA 0x01
1228#define SUBLANG_KINYARWANDA_RWANDA 0x01
1229#define SUBLANG_KONKANI_INDIA 0x01
1230#define SUBLANG_KOREAN 0x01
1231#define SUBLANG_KYRGYZ_KYRGYZSTAN 0x01
1232#define SUBLANG_LAO_LAO 0x01
1233#define SUBLANG_LATVIAN_LATVIA 0x01
1234#define SUBLANG_LITHUANIAN 0x01
1235#define SUBLANG_LOWER_SORBIAN_GERMANY 0x02
1236#define SUBLANG_LUXEMBOURGISH_LUXEMBOURG 0x01
1237#define SUBLANG_MACEDONIAN_MACEDONIA 0x01
1238#define SUBLANG_MALAY_MALAYSIA 0x01
1239#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
1240#define SUBLANG_MALAYALAM_INDIA 0x01
1241#define SUBLANG_MALTESE_MALTA 0x01
1242#define SUBLANG_MAORI_NEW_ZEALAND 0x01
1243#define SUBLANG_MAPUDUNGUN_CHILE 0x01
1244#define SUBLANG_MARATHI_INDIA 0x01
1245#define SUBLANG_MOHAWK_MOHAWK 0x01
1246#define SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA 0x01
1247#define SUBLANG_MONGOLIAN_PRC 0x02
1248#define SUBLANG_NEPALI_INDIA 0x02
1249#define SUBLANG_NEPALI_NEPAL 0x01
1250#define SUBLANG_NORWEGIAN_BOKMAL 0x01
1251#define SUBLANG_NORWEGIAN_NYNORSK 0x02
1252#define SUBLANG_OCCITAN_FRANCE 0x01
1253#define SUBLANG_ODIA_INDIA 0x01
1254#define SUBLANG_ORIYA_INDIA 0x01
1255#define SUBLANG_PASHTO_AFGHANISTAN 0x01
1256#define SUBLANG_PERSIAN_IRAN 0x01
1257#define SUBLANG_POLISH_POLAND 0x01
1258#define SUBLANG_PORTUGUESE 0x02
1259#define SUBLANG_PORTUGUESE_BRAZILIAN 0x01
1260#define SUBLANG_PULAR_SENEGAL 0x02
1261#define SUBLANG_PUNJABI_INDIA 0x01
1262#define SUBLANG_PUNJABI_PAKISTAN 0x02
1263#define SUBLANG_QUECHUA_BOLIVIA 0x01
1264#define SUBLANG_QUECHUA_ECUADOR 0x02
1265#define SUBLANG_QUECHUA_PERU 0x03
1266#define SUBLANG_ROMANIAN_ROMANIA 0x01
1267#define SUBLANG_ROMANSH_SWITZERLAND 0x01
1268#define SUBLANG_RUSSIAN_RUSSIA 0x01
1269#define SUBLANG_SAKHA_RUSSIA 0x01
1270#define SUBLANG_SAMI_NORTHERN_NORWAY 0x01
1271#define SUBLANG_SAMI_NORTHERN_SWEDEN 0x02
1272#define SUBLANG_SAMI_NORTHERN_FINLAND 0x03
1273#define SUBLANG_SAMI_LULE_NORWAY 0x04
1274#define SUBLANG_SAMI_LULE_SWEDEN 0x05
1275#define SUBLANG_SAMI_SOUTHERN_NORWAY 0x06
1276#define SUBLANG_SAMI_SOUTHERN_SWEDEN 0x07
1277#define SUBLANG_SAMI_SKOLT_FINLAND 0x08
1278#define SUBLANG_SAMI_INARI_FINLAND 0x09
1279#define SUBLANG_SANSKRIT_INDIA 0x01
1280#define SUBLANG_SCOTTISH_GAELIC 0x01
1281#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN 0x06
1282#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x07
1283#define SUBLANG_SERBIAN_MONTENEGRO_LATIN 0x0b
1284#define SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC 0x0c
1285#define SUBLANG_SERBIAN_SERBIA_LATIN 0x09
1286#define SUBLANG_SERBIAN_SERBIA_CYRILLIC 0x0a
1287#define SUBLANG_SERBIAN_CROATIA 0x01
1288#define SUBLANG_SERBIAN_LATIN 0x02
1289#define SUBLANG_SERBIAN_CYRILLIC 0x03
1290#define SUBLANG_SINDHI_INDIA 0x01
1291#define SUBLANG_SINDHI_PAKISTAN 0x02
1292#define SUBLANG_SINDHI_AFGHANISTAN 0x02
1293#define SUBLANG_SINHALESE_SRI_LANKA 0x01
1294#define SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA 0x01
1295#define SUBLANG_SLOVAK_SLOVAKIA 0x01
1296#define SUBLANG_SLOVENIAN_SLOVENIA 0x01
1297#define SUBLANG_SPANISH 0x01
1298#define SUBLANG_SPANISH_MEXICAN 0x02
1299#define SUBLANG_SPANISH_MODERN 0x03
1300#define SUBLANG_SPANISH_GUATEMALA 0x04
1301#define SUBLANG_SPANISH_COSTA_RICA 0x05
1302#define SUBLANG_SPANISH_PANAMA 0x06
1303#define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
1304#define SUBLANG_SPANISH_VENEZUELA 0x08
1305#define SUBLANG_SPANISH_COLOMBIA 0x09
1306#define SUBLANG_SPANISH_PERU 0x0a
1307#define SUBLANG_SPANISH_ARGENTINA 0x0b
1308#define SUBLANG_SPANISH_ECUADOR 0x0c
1309#define SUBLANG_SPANISH_CHILE 0x0d
1310#define SUBLANG_SPANISH_URUGUAY 0x0e
1311#define SUBLANG_SPANISH_PARAGUAY 0x0f
1312#define SUBLANG_SPANISH_BOLIVIA 0x10
1313#define SUBLANG_SPANISH_EL_SALVADOR 0x11
1314#define SUBLANG_SPANISH_HONDURAS 0x12
1315#define SUBLANG_SPANISH_NICARAGUA 0x13
1316#define SUBLANG_SPANISH_PUERTO_RICO 0x14
1317#define SUBLANG_SPANISH_US 0x15
1318#define SUBLANG_SWAHILI_KENYA 0x01
1319#define SUBLANG_SWEDISH 0x01
1320#define SUBLANG_SWEDISH_FINLAND 0x02
1321#define SUBLANG_SYRIAC_SYRIA 0x01
1322#define SUBLANG_TAJIK_TAJIKISTAN 0x01
1323#define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02
1324#define SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH 0x04
1325#define SUBLANG_TAMIL_INDIA 0x01
1326#define SUBLANG_TAMIL_SRI_LANKA 0x02
1327#define SUBLANG_TATAR_RUSSIA 0x01
1328#define SUBLANG_TELUGU_INDIA 0x01
1329#define SUBLANG_THAI_THAILAND 0x01
1330#define SUBLANG_TIBETAN_PRC 0x01
1331#define SUBLANG_TIGRIGNA_ERITREA 0x02
1332#define SUBLANG_TIGRINYA_ERITREA 0x02
1333#define SUBLANG_TIGRINYA_ETHIOPIA 0x01
1334#define SUBLANG_TSWANA_BOTSWANA 0x02
1335#define SUBLANG_TSWANA_SOUTH_AFRICA 0x01
1336#define SUBLANG_TURKISH_TURKEY 0x01
1337#define SUBLANG_TURKMEN_TURKMENISTAN 0x01
1338#define SUBLANG_UIGHUR_PRC 0x01
1339#define SUBLANG_UKRAINIAN_UKRAINE 0x01
1340#define SUBLANG_UPPER_SORBIAN_GERMANY 0x01
1341#define SUBLANG_URDU_PAKISTAN 0x01
1342#define SUBLANG_URDU_INDIA 0x02
1343#define SUBLANG_UZBEK_LATIN 0x01
1344#define SUBLANG_UZBEK_CYRILLIC 0x02
1345#define SUBLANG_VALENCIAN_VALENCIA 0x02
1346#define SUBLANG_VIETNAMESE_VIETNAM 0x01
1347#define SUBLANG_WELSH_UNITED_KINGDOM 0x01
1348#define SUBLANG_WOLOF_SENEGAL 0x01
1349#define SUBLANG_XHOSA_SOUTH_AFRICA 0x01
1350#define SUBLANG_YAKUT_RUSSIA 0x01
1351#define SUBLANG_YI_PRC 0x01
1352#define SUBLANG_YORUBA_NIGERIA 0x01
1353#define SUBLANG_ZULU_SOUTH_AFRICA 0x01
1357#define SUBLANG_DUTCH_SURINAM 0x03
1358#define SUBLANG_ROMANIAN_MOLDAVIA 0x02
1359#define SUBLANG_RUSSIAN_MOLDAVIA 0x02
1360#define SUBLANG_LITHUANIAN_CLASSIC 0x02
1361#define SUBLANG_MANX_GAELIC 0x01
1364#define SORT_DEFAULT 0x0
1365#define SORT_INVARIANT_MATH 0x1
1366#define SORT_JAPANESE_XJIS 0x0
1367#define SORT_JAPANESE_UNICODE 0x1
1368#define SORT_JAPANESE_RADICALSTROKE 0x4
1369#define SORT_CHINESE_BIG5 0x0
1370#define SORT_CHINESE_PRCP 0x0
1371#define SORT_CHINESE_UNICODE 0x1
1372#define SORT_CHINESE_PRC 0x2
1373#define SORT_CHINESE_BOPOMOFO 0x3
1374#define SORT_CHINESE_RADICALSTROKE 0x4
1375#define SORT_KOREAN_KSC 0x0
1376#define SORT_KOREAN_UNICODE 0x1
1377#define SORT_GERMAN_PHONE_BOOK 0x1
1378#define SORT_HUNGARIAN_DEFAULT 0x0
1379#define SORT_HUNGARIAN_TECHNICAL 0x1
1380#define SORT_GEORGIAN_TRADITIONAL 0x0
1381#define SORT_GEORGIAN_MODERN 0x1
1383#define LANG_SYSTEM_DEFAULT MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT)
1384#define LANG_USER_DEFAULT MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT)
1386#define LOCALE_SYSTEM_DEFAULT MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT)
1387#define LOCALE_USER_DEFAULT MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT)
1388#define LOCALE_CUSTOM_DEFAULT MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_CUSTOM_DEFAULT), SORT_DEFAULT)
1389#define LOCALE_CUSTOM_UNSPECIFIED MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_CUSTOM_UNSPECIFIED), SORT_DEFAULT)
1390#define LOCALE_CUSTOM_UI_DEFAULT MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_UI_CUSTOM_DEFAULT), SORT_DEFAULT)
1391#define LOCALE_NEUTRAL MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), SORT_DEFAULT)
1392#define LOCALE_INVARIANT MAKELCID(MAKELANGID(LANG_INVARIANT, SUBLANG_NEUTRAL), SORT_DEFAULT)
EXCEPTION_DISPOSITION NTAPI EXCEPTION_ROUTINE(struct _EXCEPTION_RECORD *ExceptionRecord, PVOID EstablisherFrame, struct _CONTEXT *ContextRecord, PVOID DispatcherContext)
EXCEPTION_ROUTINE * PEXCEPTION_ROUTINE
enum _EXCEPTION_DISPOSITION EXCEPTION_DISPOSITION
#define _IRQL_requires_same_
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
struct _ULARGE_INTEGER * PULARGE_INTEGER
struct _ULARGE_INTEGER ULARGE_INTEGER
#define _Return_type_success_(c)
#define _Null_terminated_
#define _Function_class_(n)
#define _NullNull_terminated_
_Null_terminated_ CONST PWSTR * PCZPWSTR
_Null_terminated_ CONST CHAR * LPCSTR
#define RESTRICTED_POINTER
#define DECLSPEC_ALIGN(x)
struct LIST_ENTRY32 * PLIST_ENTRY32
_Null_terminated_ WCHAR UNALIGNED * LPUWSTR
struct _SINGLE_LIST_ENTRY * PSINGLE_LIST_ENTRY
_Null_terminated_ CHAR * NPSTR
_Null_terminated_ CONST CHAR * PCSTR
_Null_terminated_ PCWSTR * PZPCWSTR
struct _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY
WCHAR UNALIGNED * PUNZWCH
_Null_terminated_ WCHAR * PWSTR
_NullNull_terminated_ WCHAR UNALIGNED * PUZZWSTR
_Null_terminated_ CONST WCHAR UNALIGNED * LPCUWSTR
struct LIST_ENTRY64 * PLIST_ENTRY64
_IRQL_requires_same_ _In_ PVOID EstablisherFrame
_Null_terminated_ WCHAR * NWPSTR
CONST WCHAR UNALIGNED * PCUNZWCH
_IRQL_requires_same_ _In_ PVOID _Inout_ struct _CONTEXT * ContextRecord
_Null_terminated_ CHAR * LPSTR
__GNU_EXTENSION typedef unsigned __int64 ULONGLONG
struct _FLOAT128 FLOAT128
$endif(_NTDEF_) typedef SHORT *PSHORT
_Null_terminated_ WCHAR UNALIGNED * PUWSTR
_NullNull_terminated_ CONST WCHAR UNALIGNED * PCUZZWSTR
_Null_terminated_ CONST WCHAR * PCWSTR
_Null_terminated_ WCHAR * LPWSTR
union _LARGE_INTEGER * PLARGE_INTEGER
__GNU_EXTENSION typedef unsigned __int64 * PULONGLONG
_Null_terminated_ PWSTR * PZPWSTR
*RESTRICTED_POINTER PRLIST_ENTRY
_Null_terminated_ CHAR * PSTR
__GNU_EXTENSION typedef __int64 LONGLONG
struct _GROUP_AFFINITY * PGROUP_AFFINITY
union _LARGE_INTEGER LARGE_INTEGER
_Null_terminated_ CONST WCHAR UNALIGNED * PCUWSTR
_Null_terminated_ PSTR * PZPSTR
_Null_terminated_ CONST WCHAR * LPCWSTR
_NullNull_terminated_ WCHAR * PZZWSTR
struct _OBJECTID OBJECTID
_Null_terminated_ CONST char * PCSZ
enum COMPARTMENT_ID * PCOMPARTMENT_ID
_NullNull_terminated_ CHAR * PZZSTR
$if(_NTDEF_) typedef unsigned char UCHAR
_NullNull_terminated_ CONST CHAR * PCZZSTR
@ UNSPECIFIED_COMPARTMENT_ID
struct _GROUP_AFFINITY GROUP_AFFINITY
_Null_terminated_ CONST PSTR * PCZPSTR
__GNU_EXTENSION typedef __int64 * PLONGLONG
_IRQL_requires_same_ _In_ PVOID _Inout_ struct _CONTEXT _In_ PVOID DispatcherContext
#define _ANONYMOUS_STRUCT
_NullNull_terminated_ CONST WCHAR * PCZZWSTR
_Null_terminated_ PCSTR * PZPCSTR
_In_opt_ PENTER_STATE_SYSTEM_HANDLER _In_opt_ PVOID _In_ LONG _In_opt_ LONG volatile * Number
$if(_WDMDDK_) typedef struct _KFLOATING_SAVE
$endif(_WDMDDK_) $if(_NTDDK_) typedef struct _NEON128
struct _SINGLE_LIST_ENTRY * Next
struct _LIST_ENTRY * PLIST_ENTRY
struct _LARGE_INTEGER::@2307 u
_ANONYMOUS_STRUCT struct _LARGE_INTEGER::@4142 DUMMYSTRUCTNAME
_Reserved_ PVOID Reserved