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#if !defined(_M_CEE_PURE)
230 #define NTAPI_INLINE NTAPI
245#ifndef DECLSPEC_ALIGN
246 #if defined(_MSC_VER) && !defined(MIDL_PASS)
247 #define DECLSPEC_ALIGN(x) __declspec(align(x))
248 #elif defined(__GNUC__)
249 #define DECLSPEC_ALIGN(x) __attribute__((aligned(x)))
251 #define DECLSPEC_ALIGN(x)
255#ifndef SYSTEM_CACHE_ALIGNMENT_SIZE
256 #if defined(_AMD64_) || defined(_X86_)
257 #define SYSTEM_CACHE_ALIGNMENT_SIZE 64
259 #define SYSTEM_CACHE_ALIGNMENT_SIZE 128
263#ifndef DECLSPEC_CACHEALIGN
264 #define DECLSPEC_CACHEALIGN DECLSPEC_ALIGN(SYSTEM_CACHE_ALIGNMENT_SIZE)
268 #if defined(_MSC_VER) && defined(__cplusplus)
269 #define DECLSPEC_UUID(x) __declspec(uuid(x))
271 #define DECLSPEC_UUID(x)
275#ifndef DECLSPEC_NOVTABLE
276 #if defined(_MSC_VER) && defined(__cplusplus)
277 #define DECLSPEC_NOVTABLE __declspec(novtable)
279 #define DECLSPEC_NOVTABLE
283#ifndef DECLSPEC_SELECTANY
284 #if defined(_MSC_VER) || defined(__GNUC__)
285 #define DECLSPEC_SELECTANY __declspec(selectany)
287 #define DECLSPEC_SELECTANY
291#ifndef DECLSPEC_DEPRECATED
292 #if (defined(_MSC_VER) || defined(__GNUC__)) && !defined(MIDL_PASS)
293 #define DECLSPEC_DEPRECATED __declspec(deprecated)
294 #define DEPRECATE_SUPPORTED
296 #define DECLSPEC_DEPRECATED
297 #undef DEPRECATE_SUPPORTED
301#ifdef DEPRECATE_DDK_FUNCTIONS
303 #define DECLSPEC_DEPRECATED_DDK DECLSPEC_DEPRECATED
304 #ifdef DEPRECATE_SUPPORTED
305 #define PRAGMA_DEPRECATED_DDK 1
308 #define DECLSPEC_DEPRECATED_DDK
309 #define PRAGMA_DEPRECATED_DDK 1
312 #define DECLSPEC_DEPRECATED_DDK
313 #define PRAGMA_DEPRECATED_DDK 0
317#define UNREFERENCED_PARAMETER(P) ((void)(P))
318#define DBG_UNREFERENCED_PARAMETER(P) ((void)(P))
319#define DBG_UNREFERENCED_LOCAL_VARIABLE(L) ((void)(L))
328 #define DECLARE_HANDLE(n) typedef struct n##__{int unused;} *n
330 #define DECLARE_HANDLE(n) typedef HANDLE n
339 #if defined(__ROS_LONG64__)
345 #if !defined(MIDL_PASS)
375#ifndef _HRESULT_DEFINED
376 #define _HRESULT_DEFINED
409typedef wchar_t WCHAR;
430#if (_WIN32_WINNT >= 0x0600) || (defined(__cplusplus) && defined(WINDOWS_ENABLE_CPLUSPLUS))
433 typedef unsigned long UCSCHAR, *PUCSCHAR, *PUCSSTR;
434 typedef const UCSCHAR *PCUCSCHAR, *PCUCSSTR;
435 typedef UCSCHAR
UNALIGNED *PUUCSCHAR, *PUUCSSTR;
436 typedef const UCSCHAR
UNALIGNED *PCUUCSCHAR, *PCUUCSSTR;
437 #define UCSCHAR_INVALID_CHARACTER (0xffffffff)
438 #define MIN_UCSCHAR (0)
439 #define MAX_UCSCHAR (0x0010FFFF)
444 #ifndef _TCHAR_DEFINED
452 #define _TCHAR_DEFINED
471 #define __TEXT(quote) L##quote
475 #ifndef _TCHAR_DEFINED
483 #define _TCHAR_DEFINED
494 #define __TEXT(quote) quote
498#define TEXT(quote) __TEXT(quote)
503typedef CCHAR *PCCHAR;
512#ifndef __COMPARTMENT_ID_DEFINED__
513#define __COMPARTMENT_ID_DEFINED__
521#ifndef __OBJECTID_DEFINED
522#define __OBJECTID_DEFINED
530 #pragma warning(push)
531 #pragma warning(disable:4201)
545#if defined(MIDL_PASS)
563#if defined(MIDL_PASS)
592#define APPLICATION_ERROR_MASK 0x20000000
593#define ERROR_SEVERITY_SUCCESS 0x00000000
594#define ERROR_SEVERITY_INFORMATIONAL 0x40000000
595#define ERROR_SEVERITY_WARNING 0x80000000
596#define ERROR_SEVERITY_ERROR 0xC0000000
600#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
601#define NT_INFORMATION(Status) ((((ULONG)(Status)) >> 30) == 1)
602#define NT_WARNING(Status) ((((ULONG)(Status)) >> 30) == 2)
603#define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3)
606#define ANSI_NULL ((CHAR)0)
607#define UNICODE_NULL ((WCHAR)0)
608#define UNICODE_STRING_MAX_BYTES ((USHORT) 65534)
609#define UNICODE_STRING_MAX_CHARS (32767)
633typedef struct _SINGLE_LIST_ENTRY32 {
638typedef struct _PROCESSOR_NUMBER {
644#define ALL_PROCESSOR_GROUPS 0xffff
667#define RTL_FIELD_TYPE(type, field) (((type*)0)->field)
668#define RTL_BITS_OF(sizeOfArg) (sizeof(sizeOfArg) * 8)
669#define RTL_BITS_OF_FIELD(type, field) (RTL_BITS_OF(RTL_FIELD_TYPE(type, field)))
670#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
672#define RTL_SIZEOF_THROUGH_FIELD(type, field) \
673 (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field))
675#define RTL_CONTAINS_FIELD(Struct, Size, Field) \
676 ( (((PCHAR)(&(Struct)->Field)) + sizeof((Struct)->Field)) <= (((PCHAR)(Struct))+(Size)) )
678#define RTL_NUMBER_OF_V1(A) (sizeof(A)/sizeof((A)[0]))
681 #define RTL_NUMBER_OF_V2(A) \
682 (({ int _check_array_type[__builtin_types_compatible_p(typeof(A), typeof(&A[0])) ? -1 : 1]; (void)_check_array_type; }), \
684#elif defined(__cplusplus)
686 template <
typename T,
size_t N>
687 static char (& SAFE_RTL_NUMBER_OF(
T (&)[
N]))[
N];
689 #define RTL_NUMBER_OF_V2(A) sizeof(SAFE_RTL_NUMBER_OF(A))
691 #define RTL_NUMBER_OF_V2(A) RTL_NUMBER_OF_V1(A)
694#ifdef ENABLE_RTL_NUMBER_OF_V2
695 #define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V2(A)
697 #define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V1(A)
700#define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)
701#define _ARRAYSIZE(A) RTL_NUMBER_OF_V1(A)
703#define RTL_NUMBER_OF_FIELD(type, field) \
704 (RTL_NUMBER_OF(RTL_FIELD_TYPE(type, field)))
706#define RTL_PADDING_BETWEEN_FIELDS(type, field1, field2) \
707 ((FIELD_OFFSET(type, field2) > FIELD_OFFSET(type, field1)) \
708 ? (FIELD_OFFSET(type, field2) - FIELD_OFFSET(type, field1) - RTL_FIELD_SIZE(type, field1)) \
709 : (FIELD_OFFSET(type, field1) - FIELD_OFFSET(type, field2) - RTL_FIELD_SIZE(type, field2)))
711#if defined(__cplusplus)
712 #define RTL_CONST_CAST(type) const_cast<type>
714 #define RTL_CONST_CAST(type) (type)
718#define DEFINE_ENUM_FLAG_OPERATORS(_ENUMTYPE) \
720 inline _ENUMTYPE operator|(_ENUMTYPE a, _ENUMTYPE b) { return _ENUMTYPE(((int)a) | ((int)b)); } \
721 inline _ENUMTYPE &operator|=(_ENUMTYPE &a, _ENUMTYPE b) { return (_ENUMTYPE &)(((int &)a) |= ((int)b)); } \
722 inline _ENUMTYPE operator&(_ENUMTYPE a, _ENUMTYPE b) { return _ENUMTYPE(((int)a) & ((int)b)); } \
723 inline _ENUMTYPE &operator&=(_ENUMTYPE &a, _ENUMTYPE b) { return (_ENUMTYPE &)(((int &)a) &= ((int)b)); } \
724 inline _ENUMTYPE operator~(_ENUMTYPE a) { return _ENUMTYPE(~((int)a)); } \
725 inline _ENUMTYPE operator^(_ENUMTYPE a, _ENUMTYPE b) { return _ENUMTYPE(((int)a) ^ ((int)b)); } \
726 inline _ENUMTYPE &operator^=(_ENUMTYPE &a, _ENUMTYPE b) { return (_ENUMTYPE &)(((int &)a) ^= ((int)b)); } \
729#define DEFINE_ENUM_FLAG_OPERATORS(_ENUMTYPE)
732#define COMPILETIME_OR_2FLAGS(a,b) ((UINT)(a)|(UINT)(b))
733#define COMPILETIME_OR_3FLAGS(a,b,c) ((UINT)(a)|(UINT)(b)|(UINT)(c))
734#define COMPILETIME_OR_4FLAGS(a,b,c,d) ((UINT)(a)|(UINT)(b)|(UINT)(c)|(UINT)(d))
735#define COMPILETIME_OR_5FLAGS(a,b,c,d,e) ((UINT)(a)|(UINT)(b)|(UINT)(c)|(UINT)(d)|(UINT)(e))
740#define MINSHORT 0x8000
741#define MAXSHORT 0x7fff
742#define MINLONG 0x80000000
743#define MAXLONG 0x7fffffff
746#define MAXUSHORT 0xffff
747#define MAXULONG 0xffffffff
751#define MAXWORD 0xffff
752#define MAXDWORD 0xffffffff
754#define MAXLONGLONG (0x7fffffffffffffffLL)
757#if defined(_M_IX86) && !defined(_M_ARM) && !defined(_M_ARM64) && \
758 !defined(MIDL_PASS)&& !defined(RC_INVOKED) && !defined(_M_CEE_PURE)
759 #define Int32x32To64(a,b) __emul(a,b)
760 #define UInt32x32To64(a,b) __emulu(a,b)
762 #define Int32x32To64(a,b) (((__int64)(long)(a))*((__int64)(long)(b)))
763 #define UInt32x32To64(a,b) ((unsigned __int64)(unsigned int)(a)*(unsigned __int64)(unsigned int)(b))
766#if defined(MIDL_PASS)|| defined(RC_INVOKED) || defined(_M_CEE_PURE) || defined(_M_ARM)
768 #define Int64ShllMod32(a,b) ((unsigned __int64)(a)<<(b))
769 #define Int64ShraMod32(a,b) (((__int64)(a))>>(b))
770 #define Int64ShrlMod32(a,b) (((unsigned __int64)(a))>>(b))
773 #define Int64ShllMod32(a,b) __ll_lshift(a,b)
774 #define Int64ShraMod32(a,b) __ll_rshift(a,b)
775 #define Int64ShrlMod32(a,b) __ull_rshift(a,b)
778#define RotateLeft32 _rotl
779#define RotateLeft64 _rotl64
780#define RotateRight32 _rotr
781#define RotateRight64 _rotr64
784 #define RotateLeft8 _rotl8
785 #define RotateLeft16 _rotl16
786 #define RotateRight8 _rotr8
787 #define RotateRight16 _rotr16
791#define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1]
795 #define DEFAULT_UNREACHABLE default: __assume(0)
796#elif defined(__clang__) || (defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5))))
797 #define DEFAULT_UNREACHABLE default: __builtin_unreachable()
799 #define DEFAULT_UNREACHABLE default: break
802#if defined(__GNUC__) || defined(__clang__)
803 #define UNREACHABLE __builtin_unreachable()
804#elif defined(_MSC_VER)
805 #define UNREACHABLE __assume(0)
810#define VER_WORKSTATION_NT 0x40000000
811#define VER_SERVER_NT 0x80000000
812#define VER_SUITE_SMALLBUSINESS 0x00000001
813#define VER_SUITE_ENTERPRISE 0x00000002
814#define VER_SUITE_BACKOFFICE 0x00000004
815#define VER_SUITE_COMMUNICATIONS 0x00000008
816#define VER_SUITE_TERMINAL 0x00000010
817#define VER_SUITE_SMALLBUSINESS_RESTRICTED 0x00000020
818#define VER_SUITE_EMBEDDEDNT 0x00000040
819#define VER_SUITE_DATACENTER 0x00000080
820#define VER_SUITE_SINGLEUSERTS 0x00000100
821#define VER_SUITE_PERSONAL 0x00000200
822#define VER_SUITE_BLADE 0x00000400
823#define VER_SUITE_EMBEDDED_RESTRICTED 0x00000800
824#define VER_SUITE_SECURITY_APPLIANCE 0x00001000
825#define VER_SUITE_STORAGE_SERVER 0x00002000
826#define VER_SUITE_COMPUTE_SERVER 0x00004000
827#define VER_SUITE_WH_SERVER 0x00008000
830#define PRODUCT_UNDEFINED 0x00000000
831#define PRODUCT_ULTIMATE 0x00000001
832#define PRODUCT_HOME_BASIC 0x00000002
833#define PRODUCT_HOME_PREMIUM 0x00000003
834#define PRODUCT_ENTERPRISE 0x00000004
835#define PRODUCT_HOME_BASIC_N 0x00000005
836#define PRODUCT_BUSINESS 0x00000006
837#define PRODUCT_STANDARD_SERVER 0x00000007
838#define PRODUCT_DATACENTER_SERVER 0x00000008
839#define PRODUCT_SMALLBUSINESS_SERVER 0x00000009
840#define PRODUCT_ENTERPRISE_SERVER 0x0000000A
841#define PRODUCT_STARTER 0x0000000B
842#define PRODUCT_DATACENTER_SERVER_CORE 0x0000000C
843#define PRODUCT_STANDARD_SERVER_CORE 0x0000000D
844#define PRODUCT_ENTERPRISE_SERVER_CORE 0x0000000E
845#define PRODUCT_ENTERPRISE_SERVER_IA64 0x0000000F
846#define PRODUCT_BUSINESS_N 0x00000010
847#define PRODUCT_WEB_SERVER 0x00000011
848#define PRODUCT_CLUSTER_SERVER 0x00000012
849#define PRODUCT_HOME_SERVER 0x00000013
850#define PRODUCT_STORAGE_EXPRESS_SERVER 0x00000014
851#define PRODUCT_STORAGE_STANDARD_SERVER 0x00000015
852#define PRODUCT_STORAGE_WORKGROUP_SERVER 0x00000016
853#define PRODUCT_STORAGE_ENTERPRISE_SERVER 0x00000017
854#define PRODUCT_SERVER_FOR_SMALLBUSINESS 0x00000018
855#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM 0x00000019
856#define PRODUCT_HOME_PREMIUM_N 0x0000001A
857#define PRODUCT_ENTERPRISE_N 0x0000001B
858#define PRODUCT_ULTIMATE_N 0x0000001C
859#define PRODUCT_WEB_SERVER_CORE 0x0000001D
860#define PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT 0x0000001E
861#define PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY 0x0000001F
862#define PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING 0x00000020
863#define PRODUCT_SERVER_FOUNDATION 0x00000021
864#define PRODUCT_HOME_PREMIUM_SERVER 0x00000022
865#define PRODUCT_SERVER_FOR_SMALLBUSINESS_V 0x00000023
866#define PRODUCT_STANDARD_SERVER_V 0x00000024
867#define PRODUCT_DATACENTER_SERVER_V 0x00000025
868#define PRODUCT_ENTERPRISE_SERVER_V 0x00000026
869#define PRODUCT_DATACENTER_SERVER_CORE_V 0x00000027
870#define PRODUCT_STANDARD_SERVER_CORE_V 0x00000028
871#define PRODUCT_ENTERPRISE_SERVER_CORE_V 0x00000029
872#define PRODUCT_HYPERV 0x0000002A
873#define PRODUCT_STORAGE_EXPRESS_SERVER_CORE 0x0000002B
874#define PRODUCT_STORAGE_STANDARD_SERVER_CORE 0x0000002C
875#define PRODUCT_STORAGE_WORKGROUP_SERVER_CORE 0x0000002D
876#define PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE 0x0000002E
877#define PRODUCT_STARTER_N 0x0000002F
878#define PRODUCT_PROFESSIONAL 0x00000030
879#define PRODUCT_PROFESSIONAL_N 0x00000031
880#define PRODUCT_SB_SOLUTION_SERVER 0x00000032
881#define PRODUCT_SERVER_FOR_SB_SOLUTIONS 0x00000033
882#define PRODUCT_STANDARD_SERVER_SOLUTIONS 0x00000034
883#define PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE 0x00000035
884#define PRODUCT_SB_SOLUTION_SERVER_EM 0x00000036
885#define PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM 0x00000037
886#define PRODUCT_SOLUTION_EMBEDDEDSERVER 0x00000038
887#define PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE 0x00000039
888#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT 0x0000003B
889#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL 0x0000003C
890#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC 0x0000003D
891#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC 0x0000003E
892#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE 0x0000003F
893#define PRODUCT_CLUSTER_SERVER_V 0x00000040
894#define PRODUCT_EMBEDDED 0x00000041
895#define PRODUCT_STARTER_E 0x00000042
896#define PRODUCT_HOME_BASIC_E 0x00000043
897#define PRODUCT_HOME_PREMIUM_E 0x00000044
898#define PRODUCT_PROFESSIONAL_E 0x00000045
899#define PRODUCT_ENTERPRISE_E 0x00000046
900#define PRODUCT_ULTIMATE_E 0x00000047
901#define PRODUCT_ENTERPRISE_EVALUATION 0x00000048
902#define PRODUCT_MULTIPOINT_STANDARD_SERVER 0x0000004C
903#define PRODUCT_MULTIPOINT_PREMIUM_SERVER 0x0000004D
904#define PRODUCT_STANDARD_EVALUATION_SERVER 0x0000004F
905#define PRODUCT_DATACENTER_EVALUATION_SERVER 0x00000050
906#define PRODUCT_ENTERPRISE_N_EVALUATION 0x00000054
907#define PRODUCT_EMBEDDED_AUTOMOTIVE 0x00000055
908#define PRODUCT_EMBEDDED_INDUSTRY_A 0x00000056
909#define PRODUCT_THINPC 0x00000057
910#define PRODUCT_EMBEDDED_A 0x00000058
911#define PRODUCT_EMBEDDED_INDUSTRY 0x00000059
912#define PRODUCT_EMBEDDED_E 0x0000005A
913#define PRODUCT_EMBEDDED_INDUSTRY_E 0x0000005B
914#define PRODUCT_EMBEDDED_INDUSTRY_A_E 0x0000005C
915#define PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER 0x0000005F
916#define PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER 0x00000060
917#define PRODUCT_CORE_ARM 0x00000061
918#define PRODUCT_CORE_N 0x00000062
919#define PRODUCT_CORE_COUNTRYSPECIFIC 0x00000063
920#define PRODUCT_CORE_SINGLELANGUAGE 0x00000064
921#define PRODUCT_CORE 0x00000065
922#define PRODUCT_PROFESSIONAL_WMC 0x00000067
923#define PRODUCT_ENTERPRISE_S_N_EVALUATION 0x00000082
924#define PRODUCT_UNLICENSED 0xABCDABCD
927#define MAKELANGID(p, s) ((((USHORT)(s)) << 10) | (USHORT)(p))
928#define PRIMARYLANGID(lgid) ((USHORT)(lgid) & 0x3ff)
929#define SUBLANGID(lgid) ((USHORT)(lgid) >> 10)
930#define MAKELCID(lgid, srtid) (($ULONG)(((($ULONG)((USHORT)(srtid))) << 16) | \
931 (($ULONG)((USHORT)(lgid)))))
932#define MAKESORTLCID(lgid, srtid, ver) \
933 (($ULONG)((MAKELCID(lgid, srtid)) | \
934 ((($ULONG)((USHORT)(ver))) << 20)))
935#define LANGIDFROMLCID(lcid) ((USHORT)(lcid))
936#define SORTIDFROMLCID(lcid) ((USHORT)(((($ULONG)(lcid)) >> 16) & 0xf))
937#define SORTVERSIONFROMLCID(lcid) ((USHORT)(((($ULONG)(lcid)) >> 20) & 0xf))
939#define NLS_VALID_LOCALE_MASK 0x000fffff
940#define LOCALE_NAME_MAX_LENGTH 85
943#define LANG_NEUTRAL 0x00
944#define LANG_INVARIANT 0x7f
945#define LANG_AFRIKAANS 0x36
946#define LANG_ALBANIAN 0x1c
947#define LANG_ALSATIAN 0x84
948#define LANG_AMHARIC 0x5e
949#define LANG_ARABIC 0x01
950#define LANG_ARMENIAN 0x2b
951#define LANG_ASSAMESE 0x4d
952#define LANG_AZERI 0x2c
953#define LANG_AZERBAIJANI 0x2c
954#define LANG_BANGLA 0x45
955#define LANG_BASHKIR 0x6d
956#define LANG_BASQUE 0x2d
957#define LANG_BELARUSIAN 0x23
958#define LANG_BENGALI 0x45
959#define LANG_BOSNIAN 0x1a
960#define LANG_BOSNIAN_NEUTRAL 0x781a
961#define LANG_BRETON 0x7e
962#define LANG_BULGARIAN 0x02
963#define LANG_CATALAN 0x03
964#define LANG_CENTRAL_KURDISH 0x92
965#define LANG_CHEROKEE 0x5c
966#define LANG_CHINESE 0x04
967#define LANG_CHINESE_SIMPLIFIED 0x04
968#define LANG_CHINESE_TRADITIONAL 0x7c04
969#define LANG_CORSICAN 0x83
970#define LANG_CROATIAN 0x1a
971#define LANG_CZECH 0x05
972#define LANG_DANISH 0x06
973#define LANG_DARI 0x8c
974#define LANG_DIVEHI 0x65
975#define LANG_DUTCH 0x13
976#define LANG_ENGLISH 0x09
977#define LANG_ESTONIAN 0x25
978#define LANG_FAEROESE 0x38
979#define LANG_FARSI 0x29
980#define LANG_FILIPINO 0x64
981#define LANG_FINNISH 0x0b
982#define LANG_FRENCH 0x0c
983#define LANG_FRISIAN 0x62
984#define LANG_FULAH 0x67
985#define LANG_GALICIAN 0x56
986#define LANG_GEORGIAN 0x37
987#define LANG_GERMAN 0x07
988#define LANG_GREEK 0x08
989#define LANG_GREENLANDIC 0x6f
990#define LANG_GUJARATI 0x47
991#define LANG_HAUSA 0x68
992#define LANG_HAWAIIAN 0x75
993#define LANG_HEBREW 0x0d
994#define LANG_HINDI 0x39
995#define LANG_HUNGARIAN 0x0e
996#define LANG_ICELANDIC 0x0f
997#define LANG_IGBO 0x70
998#define LANG_INDONESIAN 0x21
999#define LANG_INUKTITUT 0x5d
1000#define LANG_IRISH 0x3c
1001#define LANG_ITALIAN 0x10
1002#define LANG_JAPANESE 0x11
1003#define LANG_KANNADA 0x4b
1004#define LANG_KASHMIRI 0x60
1005#define LANG_KAZAK 0x3f
1006#define LANG_KHMER 0x53
1007#define LANG_KICHE 0x86
1008#define LANG_KINYARWANDA 0x87
1009#define LANG_KONKANI 0x57
1010#define LANG_KOREAN 0x12
1011#define LANG_KYRGYZ 0x40
1012#define LANG_LAO 0x54
1013#define LANG_LATVIAN 0x26
1014#define LANG_LITHUANIAN 0x27
1015#define LANG_LOWER_SORBIAN 0x2e
1016#define LANG_LUXEMBOURGISH 0x6e
1017#define LANG_MACEDONIAN 0x2f
1018#define LANG_MALAY 0x3e
1019#define LANG_MALAYALAM 0x4c
1020#define LANG_MALTESE 0x3a
1021#define LANG_MANIPURI 0x58
1022#define LANG_MAORI 0x81
1023#define LANG_MAPUDUNGUN 0x7a
1024#define LANG_MARATHI 0x4e
1025#define LANG_MOHAWK 0x7c
1026#define LANG_MONGOLIAN 0x50
1027#define LANG_NEPALI 0x61
1028#define LANG_NORWEGIAN 0x14
1029#define LANG_OCCITAN 0x82
1030#define LANG_ODIA 0x48
1031#define LANG_ORIYA 0x48
1032#define LANG_PASHTO 0x63
1033#define LANG_PERSIAN 0x29
1034#define LANG_POLISH 0x15
1035#define LANG_PORTUGUESE 0x16
1036#define LANG_PULAR 0x67
1037#define LANG_PUNJABI 0x46
1038#define LANG_QUECHUA 0x6b
1039#define LANG_ROMANIAN 0x18
1040#define LANG_ROMANSH 0x17
1041#define LANG_RUSSIAN 0x19
1042#define LANG_SAKHA 0x85
1043#define LANG_SAMI 0x3b
1044#define LANG_SANSKRIT 0x4f
1045#define LANG_SCOTTISH_GAELIC 0x91
1046#define LANG_SERBIAN 0x1a
1047#define LANG_SERBIAN_NEUTRAL 0x7c1a
1048#define LANG_SINDHI 0x59
1049#define LANG_SINHALESE 0x5b
1050#define LANG_SLOVAK 0x1b
1051#define LANG_SLOVENIAN 0x24
1052#define LANG_SOTHO 0x6c
1053#define LANG_SPANISH 0x0a
1054#define LANG_SWAHILI 0x41
1055#define LANG_SWEDISH 0x1d
1056#define LANG_SYRIAC 0x5a
1057#define LANG_TAJIK 0x28
1058#define LANG_TAMAZIGHT 0x5f
1059#define LANG_TAMIL 0x49
1060#define LANG_TATAR 0x44
1061#define LANG_TELUGU 0x4a
1062#define LANG_THAI 0x1e
1063#define LANG_TIBETAN 0x51
1064#define LANG_TIGRIGNA 0x73
1065#define LANG_TIGRINYA 0x73
1066#define LANG_TSWANA 0x32
1067#define LANG_TURKISH 0x1f
1068#define LANG_TURKMEN 0x42
1069#define LANG_UIGHUR 0x80
1070#define LANG_UKRAINIAN 0x22
1071#define LANG_UPPER_SORBIAN 0x2e
1072#define LANG_URDU 0x20
1073#define LANG_UZBEK 0x43
1074#define LANG_VALENCIAN 0x03
1075#define LANG_VIETNAMESE 0x2a
1076#define LANG_WELSH 0x52
1077#define LANG_WOLOF 0x88
1078#define LANG_XHOSA 0x34
1079#define LANG_YAKUT 0x85
1081#define LANG_YORUBA 0x6a
1082#define LANG_ZULU 0x35
1087#define LANG_MALAGASY 0x8d
1090#define LANG_SUTU 0x30
1091#define LANG_TSONGA 0x31
1092#define LANG_VENDA 0x33
1095#define LANG_ASTURIAN 0xa5
1096#define LANG_ESPERANTO 0x8f
1097#define LANG_WALON 0x90
1098#define LANG_CORNISH 0x92
1099#define LANG_MANX_GAELIC 0x94
1102#define SUBLANG_NEUTRAL 0x00
1103#define SUBLANG_DEFAULT 0x01
1104#define SUBLANG_SYS_DEFAULT 0x02
1105#define SUBLANG_CUSTOM_DEFAULT 0x03
1106#define SUBLANG_CUSTOM_UNSPECIFIED 0x04
1107#define SUBLANG_UI_CUSTOM_DEFAULT 0x05
1108#define SUBLANG_AFRIKAANS_SOUTH_AFRICA 0x01
1109#define SUBLANG_ALBANIAN_ALBANIA 0x01
1110#define SUBLANG_ALSATIAN_FRANCE 0x01
1111#define SUBLANG_AMHARIC_ETHIOPIA 0x01
1112#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01
1113#define SUBLANG_ARABIC_IRAQ 0x02
1114#define SUBLANG_ARABIC_EGYPT 0x03
1115#define SUBLANG_ARABIC_LIBYA 0x04
1116#define SUBLANG_ARABIC_ALGERIA 0x05
1117#define SUBLANG_ARABIC_MOROCCO 0x06
1118#define SUBLANG_ARABIC_TUNISIA 0x07
1119#define SUBLANG_ARABIC_OMAN 0x08
1120#define SUBLANG_ARABIC_YEMEN 0x09
1121#define SUBLANG_ARABIC_SYRIA 0x0a
1122#define SUBLANG_ARABIC_JORDAN 0x0b
1123#define SUBLANG_ARABIC_LEBANON 0x0c
1124#define SUBLANG_ARABIC_KUWAIT 0x0d
1125#define SUBLANG_ARABIC_UAE 0x0e
1126#define SUBLANG_ARABIC_BAHRAIN 0x0f
1127#define SUBLANG_ARABIC_QATAR 0x10
1128#define SUBLANG_ARMENIAN_ARMENIA 0x01
1129#define SUBLANG_ASSAMESE_INDIA 0x01
1130#define SUBLANG_AZERI_LATIN 0x01
1131#define SUBLANG_AZERI_CYRILLIC 0x02
1132#define SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN 0x01
1133#define SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC 0x02
1134#define SUBLANG_BANGLA_INDIA 0x01
1135#define SUBLANG_BANGLA_BANGLADESH 0x02
1136#define SUBLANG_BASHKIR_RUSSIA 0x01
1137#define SUBLANG_BASQUE_BASQUE 0x01
1138#define SUBLANG_BELARUSIAN_BELARUS 0x01
1139#define SUBLANG_BENGALI_INDIA 0x01
1140#define SUBLANG_BENGALI_BANGLADESH 0x02
1141#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05
1142#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08
1143#define SUBLANG_BRETON_FRANCE 0x01
1144#define SUBLANG_BULGARIAN_BULGARIA 0x01
1145#define SUBLANG_CATALAN_CATALAN 0x01
1146#define SUBLANG_CENTRAL_KURDISH_IRAQ 0x01
1147#define SUBLANG_CHEROKEE_CHEROKEE 0x01
1148#define SUBLANG_CHINESE_TRADITIONAL 0x01
1149#define SUBLANG_CHINESE_SIMPLIFIED 0x02
1150#define SUBLANG_CHINESE_HONGKONG 0x03
1151#define SUBLANG_CHINESE_SINGAPORE 0x04
1152#define SUBLANG_CHINESE_MACAU 0x05
1153#define SUBLANG_CORSICAN_FRANCE 0x01
1154#define SUBLANG_CZECH_CZECH_REPUBLIC 0x01
1155#define SUBLANG_CROATIAN_CROATIA 0x01
1156#define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04
1157#define SUBLANG_DANISH_DENMARK 0x01
1158#define SUBLANG_DARI_AFGHANISTAN 0x01
1159#define SUBLANG_DIVEHI_MALDIVES 0x01
1160#define SUBLANG_DUTCH 0x01
1161#define SUBLANG_DUTCH_BELGIAN 0x02
1162#define SUBLANG_ENGLISH_US 0x01
1163#define SUBLANG_ENGLISH_UK 0x02
1164#define SUBLANG_ENGLISH_AUS 0x03
1165#define SUBLANG_ENGLISH_CAN 0x04
1166#define SUBLANG_ENGLISH_NZ 0x05
1167#define SUBLANG_ENGLISH_EIRE 0x06
1168#define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07
1169#define SUBLANG_ENGLISH_JAMAICA 0x08
1170#define SUBLANG_ENGLISH_CARIBBEAN 0x09
1171#define SUBLANG_ENGLISH_BELIZE 0x0a
1172#define SUBLANG_ENGLISH_TRINIDAD 0x0b
1173#define SUBLANG_ENGLISH_ZIMBABWE 0x0c
1174#define SUBLANG_ENGLISH_PHILIPPINES 0x0d
1175#define SUBLANG_ENGLISH_INDIA 0x10
1176#define SUBLANG_ENGLISH_MALAYSIA 0x11
1177#define SUBLANG_ENGLISH_SINGAPORE 0x12
1178#define SUBLANG_ESTONIAN_ESTONIA 0x01
1179#define SUBLANG_FAEROESE_FAROE_ISLANDS 0x01
1180#define SUBLANG_FILIPINO_PHILIPPINES 0x01
1181#define SUBLANG_FINNISH_FINLAND 0x01
1182#define SUBLANG_FRENCH 0x01
1183#define SUBLANG_FRENCH_BELGIAN 0x02
1184#define SUBLANG_FRENCH_CANADIAN 0x03
1185#define SUBLANG_FRENCH_SWISS 0x04
1186#define SUBLANG_FRENCH_LUXEMBOURG 0x05
1187#define SUBLANG_FRENCH_MONACO 0x06
1188#define SUBLANG_FRISIAN_NETHERLANDS 0x01
1189#define SUBLANG_FULAH_SENEGAL 0x02
1190#define SUBLANG_GALICIAN_GALICIAN 0x01
1191#define SUBLANG_GEORGIAN_GEORGIA 0x01
1192#define SUBLANG_GERMAN 0x01
1193#define SUBLANG_GERMAN_SWISS 0x02
1194#define SUBLANG_GERMAN_AUSTRIAN 0x03
1195#define SUBLANG_GERMAN_LUXEMBOURG 0x04
1196#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05
1197#define SUBLANG_GREEK_GREECE 0x01
1198#define SUBLANG_GREENLANDIC_GREENLAND 0x01
1199#define SUBLANG_GUJARATI_INDIA 0x01
1200#define SUBLANG_HAUSA_NIGERIA_LATIN 0x01
1201#define SUBLANG_HAWAIIAN_US 0x01
1202#define SUBLANG_HEBREW_ISRAEL 0x01
1203#define SUBLANG_HINDI_INDIA 0x01
1204#define SUBLANG_HUNGARIAN_HUNGARY 0x01
1205#define SUBLANG_ICELANDIC_ICELAND 0x01
1206#define SUBLANG_IGBO_NIGERIA 0x01
1207#define SUBLANG_INDONESIAN_INDONESIA 0x01
1208#define SUBLANG_INUKTITUT_CANADA 0x01
1209#define SUBLANG_INUKTITUT_CANADA_LATIN 0x02
1210#define SUBLANG_IRISH_IRELAND 0x02
1211#define SUBLANG_ITALIAN 0x01
1212#define SUBLANG_ITALIAN_SWISS 0x02
1213#define SUBLANG_JAPANESE_JAPAN 0x01
1214#define SUBLANG_KANNADA_INDIA 0x01
1215#define SUBLANG_KASHMIRI_SASIA 0x02
1216#define SUBLANG_KASHMIRI_INDIA 0x02
1217#define SUBLANG_KAZAK_KAZAKHSTAN 0x01
1218#define SUBLANG_KHMER_CAMBODIA 0x01
1219#define SUBLANG_KICHE_GUATEMALA 0x01
1220#define SUBLANG_KINYARWANDA_RWANDA 0x01
1221#define SUBLANG_KONKANI_INDIA 0x01
1222#define SUBLANG_KOREAN 0x01
1223#define SUBLANG_KYRGYZ_KYRGYZSTAN 0x01
1224#define SUBLANG_LAO_LAO 0x01
1225#define SUBLANG_LATVIAN_LATVIA 0x01
1226#define SUBLANG_LITHUANIAN 0x01
1227#define SUBLANG_LOWER_SORBIAN_GERMANY 0x02
1228#define SUBLANG_LUXEMBOURGISH_LUXEMBOURG 0x01
1229#define SUBLANG_MACEDONIAN_MACEDONIA 0x01
1230#define SUBLANG_MALAY_MALAYSIA 0x01
1231#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
1232#define SUBLANG_MALAYALAM_INDIA 0x01
1233#define SUBLANG_MALTESE_MALTA 0x01
1234#define SUBLANG_MAORI_NEW_ZEALAND 0x01
1235#define SUBLANG_MAPUDUNGUN_CHILE 0x01
1236#define SUBLANG_MARATHI_INDIA 0x01
1237#define SUBLANG_MOHAWK_MOHAWK 0x01
1238#define SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA 0x01
1239#define SUBLANG_MONGOLIAN_PRC 0x02
1240#define SUBLANG_NEPALI_INDIA 0x02
1241#define SUBLANG_NEPALI_NEPAL 0x01
1242#define SUBLANG_NORWEGIAN_BOKMAL 0x01
1243#define SUBLANG_NORWEGIAN_NYNORSK 0x02
1244#define SUBLANG_OCCITAN_FRANCE 0x01
1245#define SUBLANG_ODIA_INDIA 0x01
1246#define SUBLANG_ORIYA_INDIA 0x01
1247#define SUBLANG_PASHTO_AFGHANISTAN 0x01
1248#define SUBLANG_PERSIAN_IRAN 0x01
1249#define SUBLANG_POLISH_POLAND 0x01
1250#define SUBLANG_PORTUGUESE 0x02
1251#define SUBLANG_PORTUGUESE_BRAZILIAN 0x01
1252#define SUBLANG_PULAR_SENEGAL 0x02
1253#define SUBLANG_PUNJABI_INDIA 0x01
1254#define SUBLANG_PUNJABI_PAKISTAN 0x02
1255#define SUBLANG_QUECHUA_BOLIVIA 0x01
1256#define SUBLANG_QUECHUA_ECUADOR 0x02
1257#define SUBLANG_QUECHUA_PERU 0x03
1258#define SUBLANG_ROMANIAN_ROMANIA 0x01
1259#define SUBLANG_ROMANSH_SWITZERLAND 0x01
1260#define SUBLANG_RUSSIAN_RUSSIA 0x01
1261#define SUBLANG_SAKHA_RUSSIA 0x01
1262#define SUBLANG_SAMI_NORTHERN_NORWAY 0x01
1263#define SUBLANG_SAMI_NORTHERN_SWEDEN 0x02
1264#define SUBLANG_SAMI_NORTHERN_FINLAND 0x03
1265#define SUBLANG_SAMI_LULE_NORWAY 0x04
1266#define SUBLANG_SAMI_LULE_SWEDEN 0x05
1267#define SUBLANG_SAMI_SOUTHERN_NORWAY 0x06
1268#define SUBLANG_SAMI_SOUTHERN_SWEDEN 0x07
1269#define SUBLANG_SAMI_SKOLT_FINLAND 0x08
1270#define SUBLANG_SAMI_INARI_FINLAND 0x09
1271#define SUBLANG_SANSKRIT_INDIA 0x01
1272#define SUBLANG_SCOTTISH_GAELIC 0x01
1273#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN 0x06
1274#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x07
1275#define SUBLANG_SERBIAN_MONTENEGRO_LATIN 0x0b
1276#define SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC 0x0c
1277#define SUBLANG_SERBIAN_SERBIA_LATIN 0x09
1278#define SUBLANG_SERBIAN_SERBIA_CYRILLIC 0x0a
1279#define SUBLANG_SERBIAN_CROATIA 0x01
1280#define SUBLANG_SERBIAN_LATIN 0x02
1281#define SUBLANG_SERBIAN_CYRILLIC 0x03
1282#define SUBLANG_SINDHI_INDIA 0x01
1283#define SUBLANG_SINDHI_PAKISTAN 0x02
1284#define SUBLANG_SINDHI_AFGHANISTAN 0x02
1285#define SUBLANG_SINHALESE_SRI_LANKA 0x01
1286#define SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA 0x01
1287#define SUBLANG_SLOVAK_SLOVAKIA 0x01
1288#define SUBLANG_SLOVENIAN_SLOVENIA 0x01
1289#define SUBLANG_SPANISH 0x01
1290#define SUBLANG_SPANISH_MEXICAN 0x02
1291#define SUBLANG_SPANISH_MODERN 0x03
1292#define SUBLANG_SPANISH_GUATEMALA 0x04
1293#define SUBLANG_SPANISH_COSTA_RICA 0x05
1294#define SUBLANG_SPANISH_PANAMA 0x06
1295#define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
1296#define SUBLANG_SPANISH_VENEZUELA 0x08
1297#define SUBLANG_SPANISH_COLOMBIA 0x09
1298#define SUBLANG_SPANISH_PERU 0x0a
1299#define SUBLANG_SPANISH_ARGENTINA 0x0b
1300#define SUBLANG_SPANISH_ECUADOR 0x0c
1301#define SUBLANG_SPANISH_CHILE 0x0d
1302#define SUBLANG_SPANISH_URUGUAY 0x0e
1303#define SUBLANG_SPANISH_PARAGUAY 0x0f
1304#define SUBLANG_SPANISH_BOLIVIA 0x10
1305#define SUBLANG_SPANISH_EL_SALVADOR 0x11
1306#define SUBLANG_SPANISH_HONDURAS 0x12
1307#define SUBLANG_SPANISH_NICARAGUA 0x13
1308#define SUBLANG_SPANISH_PUERTO_RICO 0x14
1309#define SUBLANG_SPANISH_US 0x15
1310#define SUBLANG_SWAHILI_KENYA 0x01
1311#define SUBLANG_SWEDISH 0x01
1312#define SUBLANG_SWEDISH_FINLAND 0x02
1313#define SUBLANG_SYRIAC_SYRIA 0x01
1314#define SUBLANG_TAJIK_TAJIKISTAN 0x01
1315#define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02
1316#define SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH 0x04
1317#define SUBLANG_TAMIL_INDIA 0x01
1318#define SUBLANG_TAMIL_SRI_LANKA 0x02
1319#define SUBLANG_TATAR_RUSSIA 0x01
1320#define SUBLANG_TELUGU_INDIA 0x01
1321#define SUBLANG_THAI_THAILAND 0x01
1322#define SUBLANG_TIBETAN_PRC 0x01
1323#define SUBLANG_TIGRIGNA_ERITREA 0x02
1324#define SUBLANG_TIGRINYA_ERITREA 0x02
1325#define SUBLANG_TIGRINYA_ETHIOPIA 0x01
1326#define SUBLANG_TSWANA_BOTSWANA 0x02
1327#define SUBLANG_TSWANA_SOUTH_AFRICA 0x01
1328#define SUBLANG_TURKISH_TURKEY 0x01
1329#define SUBLANG_TURKMEN_TURKMENISTAN 0x01
1330#define SUBLANG_UIGHUR_PRC 0x01
1331#define SUBLANG_UKRAINIAN_UKRAINE 0x01
1332#define SUBLANG_UPPER_SORBIAN_GERMANY 0x01
1333#define SUBLANG_URDU_PAKISTAN 0x01
1334#define SUBLANG_URDU_INDIA 0x02
1335#define SUBLANG_UZBEK_LATIN 0x01
1336#define SUBLANG_UZBEK_CYRILLIC 0x02
1337#define SUBLANG_VALENCIAN_VALENCIA 0x02
1338#define SUBLANG_VIETNAMESE_VIETNAM 0x01
1339#define SUBLANG_WELSH_UNITED_KINGDOM 0x01
1340#define SUBLANG_WOLOF_SENEGAL 0x01
1341#define SUBLANG_XHOSA_SOUTH_AFRICA 0x01
1342#define SUBLANG_YAKUT_RUSSIA 0x01
1343#define SUBLANG_YI_PRC 0x01
1344#define SUBLANG_YORUBA_NIGERIA 0x01
1345#define SUBLANG_ZULU_SOUTH_AFRICA 0x01
1349#define SUBLANG_DUTCH_SURINAM 0x03
1350#define SUBLANG_ROMANIAN_MOLDAVIA 0x02
1351#define SUBLANG_RUSSIAN_MOLDAVIA 0x02
1352#define SUBLANG_LITHUANIAN_CLASSIC 0x02
1353#define SUBLANG_MANX_GAELIC 0x01
1356#define SORT_DEFAULT 0x0
1357#define SORT_INVARIANT_MATH 0x1
1358#define SORT_JAPANESE_XJIS 0x0
1359#define SORT_JAPANESE_UNICODE 0x1
1360#define SORT_JAPANESE_RADICALSTROKE 0x4
1361#define SORT_CHINESE_BIG5 0x0
1362#define SORT_CHINESE_PRCP 0x0
1363#define SORT_CHINESE_UNICODE 0x1
1364#define SORT_CHINESE_PRC 0x2
1365#define SORT_CHINESE_BOPOMOFO 0x3
1366#define SORT_CHINESE_RADICALSTROKE 0x4
1367#define SORT_KOREAN_KSC 0x0
1368#define SORT_KOREAN_UNICODE 0x1
1369#define SORT_GERMAN_PHONE_BOOK 0x1
1370#define SORT_HUNGARIAN_DEFAULT 0x0
1371#define SORT_HUNGARIAN_TECHNICAL 0x1
1372#define SORT_GEORGIAN_TRADITIONAL 0x0
1373#define SORT_GEORGIAN_MODERN 0x1
1375#define LANG_SYSTEM_DEFAULT MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT)
1376#define LANG_USER_DEFAULT MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT)
1378#define LOCALE_SYSTEM_DEFAULT MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT)
1379#define LOCALE_USER_DEFAULT MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT)
1380#define LOCALE_CUSTOM_DEFAULT MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_CUSTOM_DEFAULT), SORT_DEFAULT)
1381#define LOCALE_CUSTOM_UNSPECIFIED MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_CUSTOM_UNSPECIFIED), SORT_DEFAULT)
1382#define LOCALE_CUSTOM_UI_DEFAULT MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_UI_CUSTOM_DEFAULT), SORT_DEFAULT)
1383#define LOCALE_NEUTRAL MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), SORT_DEFAULT)
1384#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 _Function_class_(x)
#define _Null_terminated_
#define _Return_type_success_(expr)
#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
_ANONYMOUS_STRUCT struct _LARGE_INTEGER::@3941 DUMMYSTRUCTNAME
struct _LARGE_INTEGER::@2274 u
_Reserved_ PVOID Reserved