1185 lines
44 KiB
C
1185 lines
44 KiB
C
|
/*
|
||
|
* ntdef.h NT definitions
|
||
|
*
|
||
|
* =========================================================================
|
||
|
*
|
||
|
* Open Watcom Project
|
||
|
*
|
||
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
||
|
*
|
||
|
* This file is automatically generated. Do not edit directly.
|
||
|
*
|
||
|
* =========================================================================
|
||
|
*/
|
||
|
|
||
|
#ifndef _NTDEF_
|
||
|
#define _NTDEF_
|
||
|
|
||
|
#ifndef _ENABLE_AUTODEPEND
|
||
|
#pragma read_only_file;
|
||
|
#endif
|
||
|
|
||
|
#include <_w32ials.h>
|
||
|
#include <ctype.h>
|
||
|
#include <basetsd.h>
|
||
|
#include <guiddef.h>
|
||
|
#include <sdkddkver.h>
|
||
|
#include <specstrings.h>
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/* Define the appropriate macro for the current processor. */
|
||
|
#if defined(_M_I386) && !defined(_X86_)
|
||
|
#define _X86_
|
||
|
#elif defined(_M_ALPHA) && !defined(_ALPHA_)
|
||
|
#define _ALPHA_
|
||
|
#endif
|
||
|
|
||
|
/* Calling conventions */
|
||
|
#ifdef _M_I386
|
||
|
#define FASTCALL _fastcall
|
||
|
#else
|
||
|
#define FASTCALL
|
||
|
#endif
|
||
|
#define NTAPI __stdcall
|
||
|
|
||
|
/* Variable attributes */
|
||
|
#define CONST const
|
||
|
|
||
|
/* Parameter attributes */
|
||
|
#define IN
|
||
|
#define OUT
|
||
|
#define OPTIONAL
|
||
|
#define NOTHING
|
||
|
#define CRITICAL
|
||
|
|
||
|
/* Pointer attributes */
|
||
|
#define UNALIGNED
|
||
|
#define UNALIGNED64
|
||
|
#define RESTRICTED_POINTER
|
||
|
|
||
|
/* Macro to perform compile-time assertions */
|
||
|
#define C_ASSERT( x ) typedef char __C_ASSERT__[(x) ? 1 : -1]
|
||
|
|
||
|
/* Declaration specifiers */
|
||
|
#define DECLSPEC_IMPORT __declspec(dllimport)
|
||
|
#define DECLSPEC_NORETURN
|
||
|
#define DECLSPEC_NOTHROW
|
||
|
#define DECLSPEC_ALIGN( x )
|
||
|
#define DECLSPEC_UUID( x )
|
||
|
#define DECLSPEC_NOVTABLE
|
||
|
#define DECLSPEC_SELECTANY
|
||
|
#define DECLSPEC_ADDRSAFE
|
||
|
#define DECLSPEC_NOINLINE
|
||
|
#define DECLSPEC_DEPRECATED
|
||
|
#ifdef DEPRECATE_DDK_FUNCTIONS
|
||
|
#define DECLSPEC_DEPRECATED_DDK DECLSPEC_DEPRECATED
|
||
|
#else
|
||
|
#define DECLSPEC_DEPRECATED_DDK
|
||
|
#endif
|
||
|
|
||
|
/* Macros to specify NT functions */
|
||
|
#define NTSYSAPI DECLSPEC_IMPORT
|
||
|
#define NTSYSCALLAPI DECLSPEC_IMPORT
|
||
|
|
||
|
/* Standard method and API calling conventions */
|
||
|
#define STDMETHODCALLTYPE __stdcall
|
||
|
#define STDMETHODVCALLTYPE __cdecl
|
||
|
#define STDAPICALLTYPE __stdcall
|
||
|
#define STDAPIVCALLTYPE __cdecl
|
||
|
|
||
|
/* Macro used to specify extern "C" */
|
||
|
#ifdef __cplusplus
|
||
|
#define EXTERN_C extern "C"
|
||
|
#else
|
||
|
#define EXTERN_C extern
|
||
|
#endif
|
||
|
|
||
|
/* Standard method implementation and API declaration macros */
|
||
|
#define STDAPI EXTERN_C HRESULT STDAPICALLTYPE
|
||
|
#define STDAPI_( x ) EXTERN_C x STDAPICALLTYPE
|
||
|
#define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE
|
||
|
#define STDAPIV_( x ) EXTERN_C x STDAPIVCALLTYPE
|
||
|
#define STDMETHODIMP HRESULT STDMETHODCALLTYPE
|
||
|
#define STDMETHODIMP_( x ) x STDMETHODCALLTYPE
|
||
|
#define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE
|
||
|
#define STDMETHODIMPV_( x ) x STDMETHODVCALLTYPE
|
||
|
#define STDOVERRIDEMETHODIMP STDMETHODIMP
|
||
|
#define STDOVERRIDEMETHODIMP_( x ) STDMETHODIMP_( x )
|
||
|
#define STDOVERRIDEMETHODIMPV STDMETHODIMPV
|
||
|
#define STDOVERRIDEMETHODIMPV_( x ) STDMETHODIMPV_( x )
|
||
|
#define IFACEMETHODIMP STDMETHODIMP
|
||
|
#define IFACEMETHODIMP_( x ) STDMETHODIMP_( x )
|
||
|
#define IFACEMETHODIMPV STDMETHODIMPV
|
||
|
#define IFACEMETHODIMPV_( x ) STDMETHODIMPV_( x )
|
||
|
|
||
|
/* Macro to declare handle data types */
|
||
|
#define DECLARE_HANDLE( x ) typedef struct x##__ { int dummy; } *x
|
||
|
|
||
|
/* Macro used to specify an unspecified data type or an empty parameter list */
|
||
|
#define VOID void
|
||
|
|
||
|
/* Macro to specify neutral strings */
|
||
|
#ifdef UNICODE
|
||
|
#define __TEXT( x ) L##x
|
||
|
#else
|
||
|
#define __TEXT( x ) x
|
||
|
#endif
|
||
|
#define TEXT( x ) __TEXT( x )
|
||
|
|
||
|
/* Primitive data types */
|
||
|
typedef void *PVOID;
|
||
|
typedef void *PVOID64;
|
||
|
typedef char CHAR;
|
||
|
typedef short SHORT;
|
||
|
typedef long LONG;
|
||
|
typedef int INT;
|
||
|
typedef SHORT *PSHORT;
|
||
|
typedef LONG *PLONG;
|
||
|
typedef double DOUBLE;
|
||
|
typedef unsigned char UCHAR;
|
||
|
typedef unsigned short USHORT;
|
||
|
typedef unsigned long ULONG;
|
||
|
typedef UCHAR *PUCHAR;
|
||
|
typedef USHORT *PUSHORT;
|
||
|
typedef ULONG *PULONG;
|
||
|
typedef signed char SCHAR;
|
||
|
typedef SCHAR *PSCHAR;
|
||
|
#if (_WIN32_WINNT >= 0x0600)
|
||
|
typedef CONST UCHAR *PCUCHAR;
|
||
|
typedef CONST USHORT *PCUSHORT;
|
||
|
typedef CONST ULONG *PCULONG;
|
||
|
typedef CONST SCHAR *PCSCHAR;
|
||
|
#endif
|
||
|
typedef void *HANDLE;
|
||
|
typedef HANDLE *PHANDLE;
|
||
|
typedef UCHAR FCHAR;
|
||
|
typedef USHORT FSHORT;
|
||
|
typedef ULONG FLONG;
|
||
|
typedef LONG HRESULT;
|
||
|
typedef char CCHAR;
|
||
|
typedef short CSHORT;
|
||
|
typedef ULONG CLONG;
|
||
|
typedef CCHAR *PCCHAR;
|
||
|
typedef CSHORT *PCSHORT;
|
||
|
typedef CLONG *PCLONG;
|
||
|
typedef ULONG LCID;
|
||
|
typedef PULONG PLCID;
|
||
|
typedef USHORT LANGID;
|
||
|
typedef ULONG LOGICAL;
|
||
|
typedef ULONG *PLOGICAL;
|
||
|
typedef LONG NTSTATUS;
|
||
|
typedef NTSTATUS *PNTSTATUS;
|
||
|
#if (_WIN32_WINNT >= 0x0600)
|
||
|
typedef CONST NTSTATUS *PCNTSTATUS;
|
||
|
#endif
|
||
|
typedef __int64 LONGLONG;
|
||
|
typedef unsigned __int64 ULONGLONG;
|
||
|
typedef LONGLONG *PLONGLONG;
|
||
|
typedef ULONGLONG *PULONGLONG;
|
||
|
typedef LONGLONG USN;
|
||
|
typedef CHAR *PSZ;
|
||
|
typedef CONST char *PCSZ;
|
||
|
typedef USHORT RTL_STRING_LENGTH_TYPE;
|
||
|
typedef UCHAR BOOLEAN;
|
||
|
typedef BOOLEAN *PBOOLEAN;
|
||
|
typedef UCHAR KIRQL;
|
||
|
typedef KIRQL *PKIRQL;
|
||
|
|
||
|
/* ANSI string data types */
|
||
|
typedef CHAR *PCHAR;
|
||
|
typedef CHAR *LPCH;
|
||
|
typedef CHAR *PCH;
|
||
|
typedef CONST CHAR *LPCCH;
|
||
|
typedef CHAR *PCCH;
|
||
|
typedef CHAR *NPSTR;
|
||
|
typedef CHAR *LPSTR;
|
||
|
typedef CHAR *PSTR;
|
||
|
typedef PSTR *PZPSTR;
|
||
|
typedef CONST PSTR *PCZPSTR;
|
||
|
typedef CONST CHAR *LPCSTR;
|
||
|
typedef CONST CHAR *PCSTR;
|
||
|
typedef PCSTR *PZPCSTR;
|
||
|
typedef CHAR *PZZSTR;
|
||
|
typedef CONST CHAR *PCZZSTR;
|
||
|
typedef CHAR *PNZCH;
|
||
|
typedef CONST CHAR *PCNZCH;
|
||
|
|
||
|
/* Unicode string data types */
|
||
|
typedef wchar_t WCHAR;
|
||
|
typedef WCHAR *PWCHAR;
|
||
|
typedef WCHAR *LPWCH;
|
||
|
typedef WCHAR *PWCH;
|
||
|
typedef CONST WCHAR *LPCWCH;
|
||
|
typedef CONST WCHAR *PCWCH;
|
||
|
typedef WCHAR *NWPSTR;
|
||
|
typedef WCHAR *LPWSTR;
|
||
|
typedef WCHAR *PWSTR;
|
||
|
typedef PWSTR *PZPWSTR;
|
||
|
typedef CONST PWSTR *PCZPWSTR;
|
||
|
typedef WCHAR UNALIGNED *LPUWSTR;
|
||
|
typedef WCHAR UNALIGNED *PUWSTR;
|
||
|
typedef CONST WCHAR *LPCWSTR;
|
||
|
typedef CONST WCHAR *PCWSTR;
|
||
|
typedef PCWSTR *PZPCWSTR;
|
||
|
typedef CONST WCHAR UNALIGNED *LPCUWSTR;
|
||
|
typedef CONST WCHAR UNALIGNED *PCUWSTR;
|
||
|
typedef WCHAR *PZZWSTR;
|
||
|
typedef CONST WCHAR *PCZZWSTR;
|
||
|
typedef WCHAR UNALIGNED *PUZZWSTR;
|
||
|
typedef CONST WCHAR UNALIGNED *PCUZZWSTR;
|
||
|
typedef WCHAR *PNZWCH;
|
||
|
typedef CONST WCHAR *PCNZWCH;
|
||
|
typedef WCHAR UNALIGNED *PUNZWCH;
|
||
|
typedef CONST WCHAR UNALIGNED *PCUNZWCH;
|
||
|
|
||
|
/* Neutral string data types */
|
||
|
#ifdef UNICODE
|
||
|
typedef WCHAR TCHAR;
|
||
|
typedef WCHAR *PTCHAR;
|
||
|
typedef WCHAR TUCHAR;
|
||
|
typedef WCHAR *PTUCHAR;
|
||
|
typedef LPWCH LPTCH;
|
||
|
typedef LPWCH PTCH;
|
||
|
typedef LPCWCH LPCTCH;
|
||
|
typedef LPCWCH PCTCH;
|
||
|
typedef LPWSTR LPTSTR;
|
||
|
typedef LPWSTR PTSTR;
|
||
|
typedef LPCWSTR LPCTSTR;
|
||
|
typedef LPCWSTR PCTSTR;
|
||
|
typedef LPUWSTR LPUTSTR;
|
||
|
typedef LPUWSTR PUTSTR;
|
||
|
typedef LPCUWSTR LPCUTSTR;
|
||
|
typedef LPCUWSTR PCUTSTR;
|
||
|
typedef PZZWSTR PZZTSTR;
|
||
|
typedef PCZZWSTR PCZZTSTR;
|
||
|
typedef PUZZWSTR PUZZTSTR;
|
||
|
typedef PCUZZWSTR PCUZZTSTR;
|
||
|
typedef PNZWCH PNZTCH;
|
||
|
typedef PCNZWCH PCNZTCH;
|
||
|
typedef PUNZWCH PUNZTCH;
|
||
|
typedef PCUNZWCH PCUNZTCH;
|
||
|
#else
|
||
|
typedef char TCHAR;
|
||
|
typedef char *PTCHAR;
|
||
|
typedef unsigned char TUCHAR;
|
||
|
typedef unsigned char *PTUCHAR;
|
||
|
typedef LPCH LPTCH;
|
||
|
typedef LPCH PTCH;
|
||
|
typedef LPCCH LPCTCH;
|
||
|
typedef LPCCH PCTCH;
|
||
|
typedef LPSTR LPTSTR;
|
||
|
typedef LPSTR PTSTR;
|
||
|
typedef LPCSTR LPCTSTR;
|
||
|
typedef LPCSTR PCTSTR;
|
||
|
typedef LPSTR LPUTSTR;
|
||
|
typedef LPSTR PUTSTR;
|
||
|
typedef LPCSTR LPCUTSTR;
|
||
|
typedef LPCSTR PCUTSTR;
|
||
|
typedef PZZSTR PZZTSTR;
|
||
|
typedef PCZZSTR PCZZTSTR;
|
||
|
typedef PZZSTR PUZZTSTR;
|
||
|
typedef PCZZSTR PCUZZTSTR;
|
||
|
typedef PNZCH PNZTCH;
|
||
|
typedef PCNZCH PCNZTCH;
|
||
|
typedef PNZCH PUNZTCH;
|
||
|
typedef PCNZCH PCUNZTCH;
|
||
|
#endif
|
||
|
|
||
|
/* Universal Character Set (UCS) data types */
|
||
|
#if (_WIN32_WINNT >= 0x0600)
|
||
|
typedef CONST WCHAR *LPCWCHAR;
|
||
|
typedef CONST WCHAR *PCWCHAR;
|
||
|
typedef CONST WCHAR UNALIGNED *LPCUWCHAR;
|
||
|
typedef CONST WCHAR UNALIGNED *PCUWCHAR;
|
||
|
typedef unsigned long UCSCHAR;
|
||
|
typedef UCSCHAR *PUCSCHAR;
|
||
|
typedef const UCSCHAR *PCUCSCHAR;
|
||
|
typedef UCSCHAR *PUCSSTR;
|
||
|
typedef UCSCHAR UNALIGNED *PUUCSSTR;
|
||
|
typedef const UCSCHAR *PCUCSSTR;
|
||
|
typedef const UCSCHAR UNALIGNED *PCUUCSSTR;
|
||
|
typedef UCSCHAR UNALIGNED *PUUCSCHAR;
|
||
|
typedef const UCSCHAR UNALIGNED *PCUUCSCHAR;
|
||
|
#endif
|
||
|
|
||
|
/* Security status data type */
|
||
|
#ifndef __SECSTATUS_DEFINED__
|
||
|
#define __SECSTATUS_DEFINED__
|
||
|
typedef LONG SECURITY_STATUS;
|
||
|
#endif
|
||
|
|
||
|
/* Value used to declare an array of an unknown size */
|
||
|
#define ANYSIZE_ARRAY 1
|
||
|
|
||
|
/* Universal Character Set (UCS) constants */
|
||
|
#if (_WIN32_WINNT >= 0x0600)
|
||
|
#define UCSCHAR_INVALID_CHARACTER 0xFFFFFFFFL
|
||
|
#define MIN_UCSCHAR 0x00000000L
|
||
|
#define MAX_UCSCHAR 0x0010FFFFL
|
||
|
#endif
|
||
|
|
||
|
/* Processor group special value */
|
||
|
#define ALL_PROCESSOR_GROUPS 0xFFFF
|
||
|
|
||
|
/* Object handle tag bits */
|
||
|
#define OBJ_HANDLE_TAGBITS 0x00000003L
|
||
|
|
||
|
/* Macros to test NT status values */
|
||
|
#define NT_SUCCESS( x ) (((NTSTATUS)(x)) >= 0)
|
||
|
#define NT_INFORMATION( x ) ((((ULONG)(x)) >> 30) == 1)
|
||
|
#define NT_WARNING( x ) ((((ULONG)(x)) >> 30) == 2)
|
||
|
#define NT_ERROR( x ) ((((ULONG)(x)) >> 30) == 3)
|
||
|
|
||
|
/* Error severities */
|
||
|
#define APPLICATION_ERROR_MASK 0x20000000
|
||
|
#define ERROR_SEVERITY_SUCCES 0x00000000
|
||
|
#define ERROR_SEVERITY_INFORMATIONAL 0x40000000
|
||
|
#define ERROR_SEVERITY_WARNING 0x80000000
|
||
|
#define ERROR_SEVERITY_ERROR 0xC0000000
|
||
|
|
||
|
/* Null character values */
|
||
|
#define ANSI_NULL ((CHAR)0)
|
||
|
#define UNICODE_NULL ((WCHAR)0)
|
||
|
|
||
|
/* Object attribute flags */
|
||
|
#define OBJ_INHERIT 0x00000002L
|
||
|
#define OBJ_PERMANENT 0x00000010L
|
||
|
#define OBJ_EXCLUSIVE 0x00000020L
|
||
|
#define OBJ_CASE_INSENSITIVE 0x00000040L
|
||
|
#define OBJ_OPENIF 0x00000080L
|
||
|
#define OBJ_OPENLINK 0x00000100L
|
||
|
#define OBJ_KERNEL_HANDLE 0x00000200L
|
||
|
#define OBJ_FORCE_ACCESS_CHECK 0x00000400L
|
||
|
#define OBJ_VALID_ATTRIBUTES 0x000007F2L
|
||
|
|
||
|
/* Basic constants */
|
||
|
#ifndef NULL
|
||
|
#ifdef __cplusplus
|
||
|
#define NULL 0
|
||
|
#else
|
||
|
#define NULL ((void *)0)
|
||
|
#endif
|
||
|
#endif
|
||
|
#ifndef FALSE
|
||
|
#define FALSE 0
|
||
|
#endif
|
||
|
#ifndef TRUE
|
||
|
#define TRUE 1
|
||
|
#endif
|
||
|
|
||
|
/* Limits of primitive data types */
|
||
|
#define MINCHAR 0x80
|
||
|
#define MAXCHAR 0x7F
|
||
|
#define MINSHORT 0x8000
|
||
|
#define MAXSHORT 0x7FFF
|
||
|
#define MINLONG 0x80000000
|
||
|
#define MAXLONG 0x7FFFFFFF
|
||
|
#define MAXUCHAR 0xFF
|
||
|
#define MAXUSHORT 0xFFFF
|
||
|
#define MAXULONG 0xFFFFFFFF
|
||
|
|
||
|
/* Macro to test if an argument is present */
|
||
|
#define ARGUMENT_PRESENT( x ) ((CHAR *)(ULONG_PTR)(x) != (CHAR *)NULL)
|
||
|
|
||
|
/* Macro to find field offsets */
|
||
|
#define FIELD_OFFSET( x, p ) ((LONG)(LONG_PTR)&(((x *)0)->p))
|
||
|
|
||
|
/* Macro to find the containing record */
|
||
|
#define CONTAINING_RECORD( p1, p2, p3 ) \
|
||
|
((p2 *)((PCHAR)(p1) - (ULONG_PTR)(&((p2 *)0)->p3)))
|
||
|
|
||
|
/* Suite types */
|
||
|
#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 VER_SUITE_WH_SERVER 0x00008000
|
||
|
|
||
|
/* Product types */
|
||
|
#define PRODUCT_UNDEFINED 0x00000000
|
||
|
#define PRODUCT_ULTIMATE 0x00000001
|
||
|
#define PRODUCT_HOME_BASIC 0x00000002
|
||
|
#define PRODUCT_HOME_PREMIUM 0x00000003
|
||
|
#define PRODUCT_ENTERPRISE 0x00000004
|
||
|
#define PRODUCT_HOME_BASIC_N 0x00000005
|
||
|
#define PRODUCT_BUSINESS 0x00000006
|
||
|
#define PRODUCT_STANDARD_SERVER 0x00000007
|
||
|
#define PRODUCT_DATACENTER_SERVER 0x00000008
|
||
|
#define PRODUCT_SMALLBUSINESS_SERVER 0x00000009
|
||
|
#define PRODUCT_ENTERPRISE_SERVER 0x0000000A
|
||
|
#define PRODUCT_STARTER 0x0000000B
|
||
|
#define PRODUCT_DATACENTER_SERVER_CORE 0x0000000C
|
||
|
#define PRODUCT_STANDARD_SERVER_CORE 0x0000000D
|
||
|
#define PRODUCT_ENTERPRISE_SERVER_CORE 0x0000000E
|
||
|
#define PRODUCT_ENTERPRISE_SERVER_IA64 0x0000000F
|
||
|
#define PRODUCT_BUSINESS_N 0x00000010
|
||
|
#define PRODUCT_WEB_SERVER 0x00000011
|
||
|
#define PRODUCT_CLUSTER_SERVER 0x00000012
|
||
|
#define PRODUCT_HOME_SERVER 0x00000013
|
||
|
#define PRODUCT_STORAGE_EXPRESS_SERVER 0x00000014
|
||
|
#define PRODUCT_STORAGE_STANDARD_SERVER 0x00000015
|
||
|
#define PRODUCT_STORAGE_WORKGROUP_SERVER 0x00000016
|
||
|
#define PRODUCT_STORAGE_ENTERPRISE_SERVER 0x00000017
|
||
|
#define PRODUCT_SERVER_FOR_SMALLBUSINESS 0x00000018
|
||
|
#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM 0x00000019
|
||
|
#define PRODUCT_HOME_PREMIUM_N 0x0000001A
|
||
|
#define PRODUCT_ENTERPRISE_N 0x0000001B
|
||
|
#define PRODUCT_ULTIMATE_N 0x0000001C
|
||
|
#define PRODUCT_WEB_SERVER_CORE 0x0000001D
|
||
|
#define PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT 0x0000001E
|
||
|
#define PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY 0x0000001F
|
||
|
#define PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING 0x00000020
|
||
|
#define PRODUCT_SERVER_FOUNDATION 0x00000021
|
||
|
#define PRODUCT_HOME_PREMIUM_SERVER 0x00000022
|
||
|
#define PRODUCT_SERVER_FOR_SMALLBUSINESS_V 0x00000023
|
||
|
#define PRODUCT_STANDARD_SERVER_V 0x00000024
|
||
|
#define PRODUCT_DATACENTER_SERVER_V 0x00000025
|
||
|
#define PRODUCT_ENTERPRISE_SERVER_V 0x00000026
|
||
|
#define PRODUCT_DATACENTER_SERVER_CORE_V 0x00000027
|
||
|
#define PRODUCT_STANDARD_SERVER_CORE_V 0x00000028
|
||
|
#define PRODUCT_ENTERPRISE_SERVER_CORE_V 0x00000029
|
||
|
#define PRODUCT_HYPERV 0x0000002A
|
||
|
#define PRODUCT_STORAGE_EXPRESS_SERVER_CORE 0x0000002B
|
||
|
#define PRODUCT_STORAGE_STANDARD_SERVER_CORE 0x0000002C
|
||
|
#define PRODUCT_STORAGE_WORKGROUP_SERVER_CORE 0x0000002D
|
||
|
#define PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE 0x0000002E
|
||
|
#define PRODUCT_STARTER_N 0x0000002F
|
||
|
#define PRODUCT_PROFESSIONAL 0x00000030
|
||
|
#define PRODUCT_PROFESSIONAL_N 0x00000031
|
||
|
#define PRODUCT_SB_SOLUTION_SERVER 0x00000032
|
||
|
#define PRODUCT_SERVER_FOR_SB_SOLUTIONS 0x00000033
|
||
|
#define PRODUCT_STANDARD_SERVER_SOLUTIONS 0x00000034
|
||
|
#define PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE 0x00000035
|
||
|
#define PRODUCT_SB_SOLUTION_SERVER_EM 0x00000036
|
||
|
#define PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM 0x00000037
|
||
|
#define PRODUCT_SOLUTION_EMBEDDEDSERVER 0x00000038
|
||
|
#define PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE 0x00000039
|
||
|
#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT 0x0000003B
|
||
|
#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL 0x0000003C
|
||
|
#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC 0x0000003D
|
||
|
#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC 0x0000003E
|
||
|
#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE 0x0000003F
|
||
|
#define PRODUCT_CLUSTER_SERVER_V 0x00000040
|
||
|
#define PRODUCT_EMBEDDED 0x00000041
|
||
|
#define PRODUCT_STARTER_E 0x00000042
|
||
|
#define PRODUCT_HOME_BASIC_E 0x00000043
|
||
|
#define PRODUCT_HOME_PREMIUM_E 0x00000044
|
||
|
#define PRODUCT_PROFESSIONAL_E 0x00000045
|
||
|
#define PRODUCT_ENTERPRISE_E 0x00000046
|
||
|
#define PRODUCT_ULTIMATE_E 0x00000047
|
||
|
#define PRODUCT_UNLICENSED 0xABCDABCD
|
||
|
|
||
|
/* Language identifiers */
|
||
|
#define LANG_NEUTRAL 0x00
|
||
|
#define LANG_INVARIANT 0x7F
|
||
|
#define LANG_AFRIKAANS 0x36
|
||
|
#define LANG_ALBANIAN 0x1C
|
||
|
#define LANG_ALSATIAN 0x84
|
||
|
#define LANG_AMHARIC 0x5E
|
||
|
#define LANG_ARABIC 0x01
|
||
|
#define LANG_ARMENIAN 0x2B
|
||
|
#define LANG_ASSAMESE 0x4D
|
||
|
#define LANG_AZERI 0x2C
|
||
|
#define LANG_BASHKIR 0x6D
|
||
|
#define LANG_BASQUE 0x2D
|
||
|
#define LANG_BELARUSIAN 0x23
|
||
|
#define LANG_BENGALI 0x45
|
||
|
#define LANG_BRETON 0x7E
|
||
|
#define LANG_BULGARIAN 0x02
|
||
|
#define LANG_CATALAN 0x03
|
||
|
#define LANG_CHINESE 0x04
|
||
|
#define LANG_CORSICAN 0x83
|
||
|
#define LANG_CROATIAN 0x1A
|
||
|
#define LANG_CZECH 0x05
|
||
|
#define LANG_DANISH 0x06
|
||
|
#define LANG_DARI 0x8C
|
||
|
#define LANG_DIVEHI 0x65
|
||
|
#define LANG_DUTCH 0x13
|
||
|
#define LANG_ENGLISH 0x09
|
||
|
#define LANG_ESTONIAN 0x25
|
||
|
#define LANG_FAEROESE 0x38
|
||
|
#define LANG_FARSI 0x29
|
||
|
#define LANG_FILIPINO 0x64
|
||
|
#define LANG_FINNISH 0x0B
|
||
|
#define LANG_FRENCH 0x0C
|
||
|
#define LANG_FRISIAN 0x62
|
||
|
#define LANG_GALICIAN 0x56
|
||
|
#define LANG_GEORGIAN 0x37
|
||
|
#define LANG_GERMAN 0x07
|
||
|
#define LANG_GREEK 0x08
|
||
|
#define LANG_GREENLANDIC 0x6F
|
||
|
#define LANG_GUJARATI 0x47
|
||
|
#define LANG_HAUSA 0x68
|
||
|
#define LANG_HEBREW 0x0D
|
||
|
#define LANG_HINDI 0x39
|
||
|
#define LANG_HUNGARIAN 0x0E
|
||
|
#define LANG_ICELANDIC 0x0F
|
||
|
#define LANG_IGBO 0x70
|
||
|
#define LANG_INDONESIAN 0x21
|
||
|
#define LANG_INUKTITUT 0x5D
|
||
|
#define LANG_IRISH 0x3C
|
||
|
#define LANG_ITALIAN 0x10
|
||
|
#define LANG_JAPANESE 0x11
|
||
|
#define LANG_KANNADA 0x4B
|
||
|
#define LANG_KASHMIRI 0x60
|
||
|
#define LANG_KAZAK 0x3F
|
||
|
#define LANG_KHMER 0x53
|
||
|
#define LANG_KICHE 0x86
|
||
|
#define LANG_KINYARWANDA 0x87
|
||
|
#define LANG_KONKANI 0x57
|
||
|
#define LANG_KOREAN 0x12
|
||
|
#define LANG_KYRGYZ 0x40
|
||
|
#define LANG_LAO 0x54
|
||
|
#define LANG_LATVIAN 0x26
|
||
|
#define LANG_LITHUANIAN 0x27
|
||
|
#define LANG_LOWER_SORBIAN 0x2E
|
||
|
#define LANG_LUXEMBOURGISH 0x6E
|
||
|
#define LANG_MACEDONIAN 0x2F
|
||
|
#define LANG_MALAY 0x3E
|
||
|
#define LANG_MALAYALAM 0x4C
|
||
|
#define LANG_MALTESE 0x3A
|
||
|
#define LANG_MANIPURI 0x58
|
||
|
#define LANG_MAORI 0x81
|
||
|
#define LANG_MAPUDUNGUN 0x7A
|
||
|
#define LANG_MARATHI 0x4E
|
||
|
#define LANG_MOHAWK 0x7C
|
||
|
#define LANG_MONGOLIAN 0x50
|
||
|
#define LANG_NEPALI 0x61
|
||
|
#define LANG_NORWEGIAN 0x14
|
||
|
#define LANG_OCCITAN 0x82
|
||
|
#define LANG_ORIYA 0x48
|
||
|
#define LANG_PASHTO 0x63
|
||
|
#define LANG_PERSIAN 0x29
|
||
|
#define LANG_POLISH 0x15
|
||
|
#define LANG_PORTUGUESE 0x16
|
||
|
#define LANG_PUNJABI 0x46
|
||
|
#define LANG_QUECHUA 0x6B
|
||
|
#define LANG_ROMANIAN 0x18
|
||
|
#define LANG_ROMANSH 0x17
|
||
|
#define LANG_RUSSIAN 0x19
|
||
|
#define LANG_SAMI 0x3B
|
||
|
#define LANG_SANSKRIT 0x4F
|
||
|
#define LANG_SCOTTISH_GAELIC 0x91
|
||
|
#define LANG_SERBIAN 0x1A
|
||
|
#define LANG_SINDHI 0x59
|
||
|
#define LANG_SINHALESE 0x5B
|
||
|
#define LANG_SLOVAK 0x1B
|
||
|
#define LANG_SLOVENIAN 0x24
|
||
|
#define LANG_SOTHO 0x6C
|
||
|
#define LANG_SPANISH 0x0A
|
||
|
#define LANG_SWAHILI 0x41
|
||
|
#define LANG_SWEDISH 0x1D
|
||
|
#define LANG_SYRIAC 0x5A
|
||
|
#define LANG_TAJIK 0x28
|
||
|
#define LANG_TAMAZIGHT 0x5F
|
||
|
#define LANG_TAMIL 0x49
|
||
|
#define LANG_TATAR 0x44
|
||
|
#define LANG_TELUGU 0x4A
|
||
|
#define LANG_THAI 0x1E
|
||
|
#define LANG_TIBETAN 0x51
|
||
|
#define LANG_TIGRIGNA 0x73
|
||
|
#define LANG_TSWANA 0x32
|
||
|
#define LANG_TURKISH 0x1F
|
||
|
#define LANG_TURKMEN 0x42
|
||
|
#define LANG_UIGHUR 0x80
|
||
|
#define LANG_UKRAINIAN 0x22
|
||
|
#define LANG_UPPER_SORBIAN 0x2E
|
||
|
#define LANG_URDU 0x20
|
||
|
#define LANG_UZBEK 0x43
|
||
|
#define LANG_VIETNAMESE 0x2A
|
||
|
#define LANG_WELSH 0x52
|
||
|
#define LANG_WOLOF 0x88
|
||
|
#define LANG_XHOSA 0x34
|
||
|
#define LANG_YAKUT 0x85
|
||
|
#define LANG_YI 0x78
|
||
|
#define LANG_YORUBA 0x6A
|
||
|
#define LANG_ZULU 0x35
|
||
|
|
||
|
/* Sublanguage identifiers */
|
||
|
#define SUBLANG_NEUTRAL 0x00
|
||
|
#define SUBLANG_DEFAULT 0x01
|
||
|
#define SUBLANG_SYS_DEFAULT 0x02
|
||
|
#define SUBLANG_CUSTOM_DEFAULT 0x03
|
||
|
#define SUBLANG_CUSTOM_UNSPECIFIED 0x04
|
||
|
#define SUBLANG_UI_CUSTOM_DEFAULT 0x05
|
||
|
#define SUBLANG_AFRIKAANS_SOUTH_AFRICA 0x01
|
||
|
#define SUBLANG_ALBANIAN_ALBANIA 0x01
|
||
|
#define SUBLANG_ALSATIAN_FRANCE 0x01
|
||
|
#define SUBLANG_AMHARIC_ETHIOPIA 0x01
|
||
|
#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01
|
||
|
#define SUBLANG_ARABIC_IRAQ 0x02
|
||
|
#define SUBLANG_ARABIC_EGYPT 0x03
|
||
|
#define SUBLANG_ARABIC_LIBYA 0x04
|
||
|
#define SUBLANG_ARABIC_ALGERIA 0x05
|
||
|
#define SUBLANG_ARABIC_MOROCCO 0x06
|
||
|
#define SUBLANG_ARABIC_TUNISIA 0x07
|
||
|
#define SUBLANG_ARABIC_OMAN 0x08
|
||
|
#define SUBLANG_ARABIC_YEMEN 0x09
|
||
|
#define SUBLANG_ARABIC_SYRIA 0x0A
|
||
|
#define SUBLANG_ARABIC_JORDAN 0x0B
|
||
|
#define SUBLANG_ARABIC_LEBANON 0x0C
|
||
|
#define SUBLANG_ARABIC_KUWAIT 0x0D
|
||
|
#define SUBLANG_ARABIC_UAE 0x0E
|
||
|
#define SUBLANG_ARABIC_BAHRAIN 0x0F
|
||
|
#define SUBLANG_ARABIC_QATAR 0x10
|
||
|
#define SUBLANG_ARMENIAN_ARMENIA 0x01
|
||
|
#define SUBLANG_ASSAMESE_INDIA 0x01
|
||
|
#define SUBLANG_AZERI_LATIN 0x01
|
||
|
#define SUBLANG_AZERI_CYRILLIC 0x02
|
||
|
#define SUBLANG_BASHKIR_RUSSIA 0x01
|
||
|
#define SUBLANG_BASQUE_BASQUE 0x01
|
||
|
#define SUBLANG_BELARUSIAN_BELARUS 0x01
|
||
|
#define SUBLANG_BENGALI 0x01
|
||
|
#define SUBLANG_BENGALI_BANGLADESH 0x02
|
||
|
#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05
|
||
|
#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08
|
||
|
#define SUBLANG_BRETON_FRANCE 0x01
|
||
|
#define SUBLANG_BULGARIAN_BULGARIA 0x01
|
||
|
#define SUBLANG_CATALAN_CATALAN 0x01
|
||
|
#define SUBLANG_CHINESE_TRADITIONAL 0x01
|
||
|
#define SUBLANG_CHINESE_SIMPLIFIED 0x02
|
||
|
#define SUBLANG_CHINESE_HONGKONG 0x03
|
||
|
#define SUBLANG_CHINESE_SINGAPORE 0x04
|
||
|
#define SUBLANG_CHINESE_MACAU 0x05
|
||
|
#define SUBLANG_CORSICAN_FRANCE 0x01
|
||
|
#define SUBLANG_CZECH_CZECH_REPUBLIC 0x01
|
||
|
#define SUBLANG_CROATIAN_CROATIA 0x01
|
||
|
#define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04
|
||
|
#define SUBLANG_DANISH_DENMARK 0x01
|
||
|
#define SUBLANG_DARI_AFGHANISTAN 0x01
|
||
|
#define SUBLANG_DIVEHI_MALDIVES 0x01
|
||
|
#define SUBLANG_DUTCH 0x01
|
||
|
#define SUBLANG_DUTCH_BELGIAN 0x02
|
||
|
#define SUBLANG_ENGLISH_US 0x01
|
||
|
#define SUBLANG_ENGLISH_UK 0x02
|
||
|
#define SUBLANG_ENGLISH_AUS 0x03
|
||
|
#define SUBLANG_ENGLISH_CAN 0x04
|
||
|
#define SUBLANG_ENGLISH_NZ 0x05
|
||
|
#define SUBLANG_ENGLISH_EIRE 0x06
|
||
|
#define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07
|
||
|
#define SUBLANG_ENGLISH_JAMAICA 0x08
|
||
|
#define SUBLANG_ENGLISH_CARIBBEAN 0x09
|
||
|
#define SUBLANG_ENGLISH_BELIZE 0x0A
|
||
|
#define SUBLANG_ENGLISH_TRINIDAD 0x0B
|
||
|
#define SUBLANG_ENGLISH_ZIMBABWE 0x0C
|
||
|
#define SUBLANG_ENGLISH_PHILIPPINES 0x0D
|
||
|
#define SUBLANG_ENGLISH_INDIA 0x10
|
||
|
#define SUBLANG_ENGLISH_MALAYSIA 0x11
|
||
|
#define SUBLANG_ENGLISH_SINGAPORE 0x12
|
||
|
#define SUBLANG_ESTONIAN_ESTONIA 0x01
|
||
|
#define SUBLANG_FAEROESE_FAROE_ISLANDS 0x01
|
||
|
#define SUBLANG_FILIPINO_PHILIPPINES 0x01
|
||
|
#define SUBLANG_FINNISH_FINLAND 0x01
|
||
|
#define SUBLANG_FRENCH 0x01
|
||
|
#define SUBLANG_FRENCH_BELGIAN 0x02
|
||
|
#define SUBLANG_FRENCH_CANADIAN 0x03
|
||
|
#define SUBLANG_FRENCH_SWISS 0x04
|
||
|
#define SUBLANG_FRENCH_LUXEMBOURG 0x05
|
||
|
#define SUBLANG_FRENCH_MONACO 0x06
|
||
|
#define SUBLANG_FRISIAN_NETHERLANDS 0x01
|
||
|
#define SUBLANG_GALICIAN_GALICIAN 0x01
|
||
|
#define SUBLANG_GEORGIAN_GEORGIA 0x01
|
||
|
#define SUBLANG_GERMAN 0x01
|
||
|
#define SUBLANG_GERMAN_SWISS 0x02
|
||
|
#define SUBLANG_GERMAN_AUSTRIAN 0x03
|
||
|
#define SUBLANG_GERMAN_LUXEMBOURG 0x04
|
||
|
#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05
|
||
|
#define SUBLANG_GREEK_GREECE 0x01
|
||
|
#define SUBLANG_GREENLANDIC_GREENLAND 0x01
|
||
|
#define SUBLANG_GUJARATI_INDIA 0x01
|
||
|
#define SUBLANG_HAUSA_NIGERIA_LATIN 0x01
|
||
|
#define SUBLANG_HEBREW_ISRAEL 0x01
|
||
|
#define SUBLANG_HINDI_INDIA 0x01
|
||
|
#define SUBLANG_HUNGARIAN_HUNGARY 0x01
|
||
|
#define SUBLANG_ICELANDIC_ICELAND 0x01
|
||
|
#define SUBLANG_IGBO_NIGERIA 0x01
|
||
|
#define SUBLANG_INDONESIAN_INDONESIA 0x01
|
||
|
#define SUBLANG_INUKTITUT_CANADA 0x01
|
||
|
#define SUBLANG_INUKTITUT_CANADA_LATIN 0x02
|
||
|
#define SUBLANG_IRISH_IRELAND 0x01
|
||
|
#define SUBLANG_ITALIAN 0x01
|
||
|
#define SUBLANG_ITALIAN_SWISS 0x02
|
||
|
#define SUBLANG_JAPANESE_JAPAN 0x01
|
||
|
#define SUBLANG_KANNADA_INDIA 0x01
|
||
|
#define SUBLANG_KASHMIRI_SASIA 0x02
|
||
|
#define SUBLANG_KASHMIRI_INDIA 0x02
|
||
|
#define SUBLANG_KAZAK_KAZAKHSTAN 0x01
|
||
|
#define SUBLANG_KHMER_CAMBODIA 0x01
|
||
|
#define SUBLANG_KICHE_GUATEMALA 0x01
|
||
|
#define SUBLANG_KINYARWANDA_RWANDA 0x01
|
||
|
#define SUBLANG_KONKANI_INDIA 0x01
|
||
|
#define SUBLANG_KOREAN 0x01
|
||
|
#define SUBLANG_KYRGYZ_KYRGYZSTAN 0x01
|
||
|
#define SUBLANG_LAO_LAO 0x01
|
||
|
#define SUBLANG_LATVIAN_LATVIA 0x01
|
||
|
#define SUBLANG_LITHUANIAN 0x01
|
||
|
#define SUBLANG_LOWER_SORBIAN_GERMANY 0x02
|
||
|
#define SUBLANG_LUXEMBOURGISH_LUXEMBOURG 0x01
|
||
|
#define SUBLANG_MACEDONIAN_MACEDONIA 0x01
|
||
|
#define SUBLANG_MALAY_MALAYSIA 0x01
|
||
|
#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
|
||
|
#define SUBLANG_MALAYALAM_INDIA 0x01
|
||
|
#define SUBLANG_MALTESE_MALTA 0x01
|
||
|
#define SUBLANG_MAORI_NEW_ZEALAND 0x01
|
||
|
#define SUBLANG_MAPUDUNGUN_CHILE 0x01
|
||
|
#define SUBLANG_MARATHI_INDIA 0x01
|
||
|
#define SUBLANG_MOHAWK_MOHAWK 0x01
|
||
|
#define SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA 0x01
|
||
|
#define SUBLANG_MONGOLIAN_PRC 0x02
|
||
|
#define SUBLANG_NEPALI_INDIA 0x02
|
||
|
#define SUBLANG_NEPALI_NEPAL 0x01
|
||
|
#define SUBLANG_NORWEGIAN_BOKMAL 0x01
|
||
|
#define SUBLANG_NORWEGIAN_NYNORSK 0x02
|
||
|
#define SUBLANG_OCCITAN_FRANCE 0x01
|
||
|
#define SUBLANG_ORIYA_INDIA 0x01
|
||
|
#define SUBLANG_PASHTO_AFGHANISTAN 0x01
|
||
|
#define SUBLANG_PERSIAN_IRAN 0x01
|
||
|
#define SUBLANG_POLISH_POLAND 0x01
|
||
|
#define SUBLANG_PORTUGUESE 0x02
|
||
|
#define SUBLANG_PORTUGUESE_BRAZILIAN 0x01
|
||
|
#define SUBLANG_PUNJABI_INDIA 0x01
|
||
|
#define SUBLANG_QUECHUA_BOLIVIA 0x01
|
||
|
#define SUBLANG_QUECHUA_ECUADOR 0x02
|
||
|
#define SUBLANG_QUECHUA_PERU 0x03
|
||
|
#define SUBLANG_ROMANIAN_ROMANIA 0x01
|
||
|
#define SUBLANG_ROMANSH_SWITZERLAND 0x01
|
||
|
#define SUBLANG_RUSSIAN_RUSSIA 0x01
|
||
|
#define SUBLANG_SAMI_NORTHERN_NORWAY 0x01
|
||
|
#define SUBLANG_SAMI_NORTHERN_SWEDEN 0x02
|
||
|
#define SUBLANG_SAMI_NORTHERN_FINLAND 0x03
|
||
|
#define SUBLANG_SAMI_LULE_NORWAY 0x04
|
||
|
#define SUBLANG_SAMI_LULE_SWEDEN 0x05
|
||
|
#define SUBLANG_SAMI_SOUTHERN_NORWAY 0x06
|
||
|
#define SUBLANG_SAMI_SOUTHERN_SWEDEN 0x07
|
||
|
#define SUBLANG_SAMI_SKOLT_FINLAND 0x08
|
||
|
#define SUBLANG_SAMI_INARI_FINLAND 0x09
|
||
|
#define SUBLANG_SANSKRIT_INDIA 0x01
|
||
|
#define SUBLANG_SCOTTISH_GAELIC 0x01
|
||
|
#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN 0x06
|
||
|
#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x07
|
||
|
#define SUBLANG_SERBIAN_MONTENEGRO_LATIN 0x0B
|
||
|
#define SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC 0x0C
|
||
|
#define SUBLANG_SERBIAN_SERBIA_LATIN 0x09
|
||
|
#define SUBLANG_SERBIAN_SERBIA_CYRILLIC 0x0A
|
||
|
#define SUBLANG_SERBIAN_CROATIA 0x01
|
||
|
#define SUBLANG_SERBIAN_LATIN 0x02
|
||
|
#define SUBLANG_SERBIAN_CYRILLIC 0x03
|
||
|
#define SUBLANG_SINDHI_INDIA 0x01
|
||
|
#define SUBLANG_SINDHI_PAKISTAN 0x02
|
||
|
#define SUBLANG_SINDHI_AFGHANISTAN 0x02
|
||
|
#define SUBLANG_SINHALESE_SRI_LANKA 0x01
|
||
|
#define SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA 0x01
|
||
|
#define SUBLANG_SLOVAK_SLOVAKIA 0x01
|
||
|
#define SUBLANG_SLOVENIAN_SLOVENIA 0x01
|
||
|
#define SUBLANG_SPANISH 0x01
|
||
|
#define SUBLANG_SPANISH_MEXICAN 0x02
|
||
|
#define SUBLANG_SPANISH_MODERN 0x03
|
||
|
#define SUBLANG_SPANISH_GUATEMALA 0x04
|
||
|
#define SUBLANG_SPANISH_COSTA_RICA 0x05
|
||
|
#define SUBLANG_SPANISH_PANAMA 0x06
|
||
|
#define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
|
||
|
#define SUBLANG_SPANISH_VENEZUELA 0x08
|
||
|
#define SUBLANG_SPANISH_COLOMBIA 0x09
|
||
|
#define SUBLANG_SPANISH_PERU 0x0A
|
||
|
#define SUBLANG_SPANISH_ARGENTINA 0x0B
|
||
|
#define SUBLANG_SPANISH_ECUADOR 0x0C
|
||
|
#define SUBLANG_SPANISH_CHILE 0x0D
|
||
|
#define SUBLANG_SPANISH_URUGUAY 0x0E
|
||
|
#define SUBLANG_SPANISH_PARAGUAY 0x0F
|
||
|
#define SUBLANG_SPANISH_BOLIVIA 0x10
|
||
|
#define SUBLANG_SPANISH_EL_SALVADOR 0x11
|
||
|
#define SUBLANG_SPANISH_HONDURAS 0x12
|
||
|
#define SUBLANG_SPANISH_NICARAGUA 0x13
|
||
|
#define SUBLANG_SPANISH_PEUTRO_RICO 0x14
|
||
|
#define SUBLANG_SPANISH_US 0x15
|
||
|
#define SUBLANG_SWAHILI_KENYA 0x01
|
||
|
#define SUBLANG_SWEDISH 0x01
|
||
|
#define SUBLANG_SWEDISH_FINLAND 0x02
|
||
|
#define SUBLANG_SYRIAC_SYRIA 0x01
|
||
|
#define SUBLANG_TAJIK_TAJIKISTAN 0x01
|
||
|
#define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02
|
||
|
#define SUBLANG_TAMIL_INDIA 0x01
|
||
|
#define SUBLANG_TATAR_RUSSIA 0x01
|
||
|
#define SUBLANG_TELUGU_INDIA 0x01
|
||
|
#define SUBLANG_THAI_THAILAND 0x01
|
||
|
#define SUBLANG_TIBETAN_PRC 0x01
|
||
|
#define SUBLANG_TIRGIGNA_ERITREA 0x02
|
||
|
#define SUBLANG_TSWANA_SOUTH_AFRICA 0x01
|
||
|
#define SUBLANG_TURKISH_TURKEY 0x01
|
||
|
#define SUBLANG_TURKMEN_TURKMENISTAN 0x01
|
||
|
#define SUBLANG_UIGHUR_PRC 0x01
|
||
|
#define SUBLANG_UKRAINIAN_UKRAINE 0x01
|
||
|
#define SUBLANG_UPPER_SORBIAN_GERMANY 0x01
|
||
|
#define SUBLANG_URDU_PAKISTAN 0x01
|
||
|
#define SUBLANG_URDU_INDIA 0x02
|
||
|
#define SUBLANG_UZBEK_LATIN 0x01
|
||
|
#define SUBLANG_UZBEK_CYRILLIC 0x02
|
||
|
#define SUBLANG_VIETNAMESE_VIETNAM 0x01
|
||
|
#define SUBLANG_WELSH_UNITED_KINGDOM 0x01
|
||
|
#define SUBLANG_WOLOF_SENEGAL 0x01
|
||
|
#define SUBLANG_XHOSA_SOUTH_AFRICA 0x01
|
||
|
#define SUBLANG_YAKUT_RUSSIA 0x01
|
||
|
#define SUBLANG_YI_PRC 0x01
|
||
|
#define SUBLANG_YURUBA_NIGERIA 0x01
|
||
|
#define SUBLANG_ZULU_SOUTH_AFRICA 0x01
|
||
|
|
||
|
/* Sort identifiers */
|
||
|
#define SORT_DEFAULT 0x0
|
||
|
#define SORT_INVARIANT_MATH 0x1
|
||
|
#define SORT_JAPANESE_XJIS 0x0
|
||
|
#define SORT_JAPANESE_UNICODE 0x1
|
||
|
#define SORT_JAPANESE_RADICALSTROKE 0x4
|
||
|
#define SORT_CHINESE_BIG5 0x0
|
||
|
#define SORT_CHINESE_PRCP 0x0
|
||
|
#define SORT_CHINESE_UNICODE 0x1
|
||
|
#define SORT_CHINESE_PRC 0x2
|
||
|
#define SORT_CHINESE_BOPOMOFO 0x3
|
||
|
#define SORT_CHINESE_RADICALSTROKE 0x4
|
||
|
#define SORT_KOREAN_KSC 0x0
|
||
|
#define SORT_KOREAN_UNICODE 0x1
|
||
|
#define SORT_GERMAN_PHONE_BOOK 0x1
|
||
|
#define SORT_HUNGARIAN_DEFAULT 0x0
|
||
|
#define SORT_HUNGARIAN_TECHNICAL 0x1
|
||
|
#define SORT_GEORGIAN_TRADITIONAL 0x0
|
||
|
#define SORT_GEORGIAN_MODERN 0x1
|
||
|
|
||
|
/* Macros to manipulate language identifiers */
|
||
|
#define MAKELANGID( p1, p2 ) (((USHORT)(p2) << 10) | (USHORT)(p1))
|
||
|
#define PRIMARYLANGID( x ) ((USHORT)(x) & 0x03FF)
|
||
|
#define SUBLANGID( x ) ((USHORT)(x) >> 10)
|
||
|
|
||
|
/* Macros to manipulate locale identifiers */
|
||
|
#define MAKELCID( p1, p2) (((ULONG)(USHORT)(p2) << 16) | (ULONG)(USHORT)(p1))
|
||
|
#define MAKESORTLCID( p1, p2, p3 ) (MAKELCID( p1, p2 ) | ((ULONG)(USHORT)(p3) << 20))
|
||
|
#define LANGIDFROMLCID( x ) ((USHORT)(x))
|
||
|
#define SORTIDFROMLCID( x ) ((USHORT)(((ULONG)(x) >> 16) & 0x0000000FL))
|
||
|
#define SORTVERSIONFROMLCID( x ) ((USHORT)(((ULONG)(x) >> 20) & 0x0000000FL))
|
||
|
|
||
|
/* Default languages identifiers */
|
||
|
#define LANG_SYSTEM_DEFAULT MAKELANGID( LANG_NEUTRAL, SUBLANG_SYS_DEFAULT )
|
||
|
#define LANG_USER_DEFAULT MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT )
|
||
|
|
||
|
/* Default locale identifiers */
|
||
|
#define LOCALE_SYSTEM_DEFAULT MAKELCID( LANG_SYSTEM_DEFAULT, SORT_DEFAULT )
|
||
|
#define LOCALE_USER_DEFAULT MAKELCID( LANG_USER_DEFAULT, SORT_DEFAULT )
|
||
|
#define LOCALE_CUSTOM_DEFAULT \
|
||
|
MAKELCID( MAKELANGID( LANG_NEUTRAL, SUBLANG_CUSTOM_DEFAULT ), SORT_DEFAULT )
|
||
|
#define LOCALE_CUSTOM_UNSPECIFIED \
|
||
|
MAKELCID( MAKELANGID( LANG_NEUTRAL, SUBLANG_CUSTOM_UNSPECIFIED ), SORT_DEFAULT )
|
||
|
#define LOCALE_CUSTOM_UI_DEFAULT \
|
||
|
MAKELCID( MAKELANGID( LANG_NEUTRAL, SUBLANG_UI_CUSTOM_DEFAULT ), SORT_DEFAULT )
|
||
|
#define LOCALE_NEUTRAL \
|
||
|
MAKELCID( MAKELANGID( LANG_NEUTRAL, SUBLANG_NEUTRAL ), SORT_DEFAULT )
|
||
|
#define LOCALE_INVARIANT \
|
||
|
MAKELCID( MAKELANGID( LANG_INVARIANT, SUBLANG_NEUTRAL ), SORT_DEFAULT )
|
||
|
|
||
|
/* Maximum locale name length */
|
||
|
#define LOCALE_NAME_MAX_LENGTH 85
|
||
|
|
||
|
/* Language identifiers for use with ConvertDefaultLocale() */
|
||
|
#define LANG_BOSNIAN_NEUTRAL 0x781A
|
||
|
#define LANG_CHINESE_SIMPLIFIED 0x0004
|
||
|
#define LANG_CHINESE_TRADITIONAL 0x7C04
|
||
|
#define LANG_SERBIAN_NEUTRAL 0x7C1A
|
||
|
|
||
|
/* Unreferenced parameter macros */
|
||
|
#define UNREFERENCED_PARAMETER( x ) (x)
|
||
|
#define DBG_UNREFERENCED_PARAMETER( x ) (x)
|
||
|
#define DBG_UNREFERENCED_LOCAL_VARIABLE( x ) (x)
|
||
|
|
||
|
/* Minimum and maximum macros */
|
||
|
#ifndef min
|
||
|
#define min( p1, p2 ) (((p1) < (p2)) ? (p1) : (p2))
|
||
|
#endif
|
||
|
#ifndef max
|
||
|
#define max( p1, p2 ) (((p1) > (p2)) ? (p1) : (p2))
|
||
|
#endif
|
||
|
|
||
|
/* Quad */
|
||
|
typedef struct _QUAD {
|
||
|
union {
|
||
|
__int64 UseThisFieldToCopy;
|
||
|
double DoNotUseThisField;
|
||
|
};
|
||
|
} QUAD;
|
||
|
typedef QUAD *PQUAD;
|
||
|
typedef QUAD UQUAD;
|
||
|
typedef UQUAD *PUQUAD;
|
||
|
#if (_WIN32_WINNT >= 0x0600)
|
||
|
typedef CONST UQUAD *PCUQUAD;
|
||
|
#endif
|
||
|
|
||
|
/* Compartment identifiers */
|
||
|
typedef enum {
|
||
|
UNSPECIFIED_COMPARTMENT_ID = 0,
|
||
|
DEFAULT_COMPARTMENT_ID = 1
|
||
|
} COMPARTMENT_ID;
|
||
|
typedef COMPARTMENT_ID *PCOMPARTMENT_ID;
|
||
|
|
||
|
/* Processor number */
|
||
|
typedef struct _PROCESSOR_NUMBER {
|
||
|
USHORT Group;
|
||
|
UCHAR Number;
|
||
|
UCHAR Reserved;
|
||
|
} PROCESSOR_NUMBER;
|
||
|
typedef PROCESSOR_NUMBER *PPROCESSOR_NUMBER;
|
||
|
|
||
|
/* Group affinity */
|
||
|
typedef struct _GROUP_AFFINITY {
|
||
|
KAFFINITY Mask;
|
||
|
USHORT Group;
|
||
|
USHORT Reserved[3];
|
||
|
} GROUP_AFFINITY;
|
||
|
typedef GROUP_AFFINITY *PGROUP_AFFINITY;
|
||
|
|
||
|
/* Large integer */
|
||
|
typedef union _LARGE_INTEGER {
|
||
|
struct {
|
||
|
ULONG LowPart;
|
||
|
LONG HighPart;
|
||
|
};
|
||
|
struct {
|
||
|
ULONG LowPart;
|
||
|
LONG HighPart;
|
||
|
} u;
|
||
|
LONGLONG QuadPart;
|
||
|
} LARGE_INTEGER;
|
||
|
typedef LARGE_INTEGER *PLARGE_INTEGER;
|
||
|
typedef LARGE_INTEGER PHYSICAL_ADDRESS;
|
||
|
typedef LARGE_INTEGER *PPHYSICAL_ADDRESS;
|
||
|
#define TIME LARGE_INTEGER
|
||
|
#define _TIME _LARGE_INTEGER
|
||
|
#define PTIME PLARGE_INTEGER
|
||
|
#define LowTime LowPart
|
||
|
#define HighPart HighPart
|
||
|
|
||
|
/* Unsigned large integer */
|
||
|
typedef union _ULARGE_INTEGER {
|
||
|
struct {
|
||
|
ULONG LowPart;
|
||
|
ULONG HighPart;
|
||
|
};
|
||
|
struct {
|
||
|
ULONG LowPart;
|
||
|
ULONG HighPart;
|
||
|
} u;
|
||
|
ULONGLONG QuadPart;
|
||
|
} ULARGE_INTEGER;
|
||
|
typedef ULARGE_INTEGER *PULARGE_INTEGER;
|
||
|
|
||
|
/* Locally unique identifier */
|
||
|
typedef struct _LUID {
|
||
|
ULONG LowPart;
|
||
|
LONG HighPart;
|
||
|
} LUID;
|
||
|
typedef LUID *PLUID;
|
||
|
|
||
|
/* Event types */
|
||
|
typedef enum _EVENT_TYPE {
|
||
|
NotificationEvent = 0,
|
||
|
SynchronizationEvent = 1
|
||
|
} EVENT_TYPE;
|
||
|
|
||
|
/* Timer types */
|
||
|
typedef enum _TIMER_TYPE {
|
||
|
NotificationTimer = 0,
|
||
|
SynchronizationTimer = 1
|
||
|
} TIMER_TYPE;
|
||
|
|
||
|
/* Wait types */
|
||
|
typedef enum _WAIT_TYPE {
|
||
|
WaitAll = 0,
|
||
|
WaitAny = 1
|
||
|
} WAIT_TYPE;
|
||
|
|
||
|
/* String */
|
||
|
typedef struct _STRING {
|
||
|
USHORT Length;
|
||
|
USHORT MaximumLength;
|
||
|
PCHAR Buffer;
|
||
|
} STRING;
|
||
|
typedef STRING *PSTRING;
|
||
|
typedef STRING ANSI_STRING;
|
||
|
typedef PSTRING PANSI_STRING;
|
||
|
typedef STRING OEM_STRING;
|
||
|
typedef PSTRING POEM_STRING;
|
||
|
typedef CONST STRING *PCOEM_STRING;
|
||
|
typedef STRING CANSI_STRING;
|
||
|
typedef PSTRING PCANSI_STRING;
|
||
|
|
||
|
/* Constant string */
|
||
|
typedef struct _CSTRING {
|
||
|
USHORT Length;
|
||
|
USHORT MaximumLength;
|
||
|
CONST char *Buffer;
|
||
|
} CSTRING;
|
||
|
typedef CSTRING *PCSTRING;
|
||
|
|
||
|
/* Unicode string */
|
||
|
typedef struct _UNICODE_STRING {
|
||
|
USHORT Length;
|
||
|
USHORT MaximumLength;
|
||
|
PWCH Buffer;
|
||
|
} UNICODE_STRING;
|
||
|
typedef UNICODE_STRING *PUNICODE_STRING;
|
||
|
typedef const UNICODE_STRING *PCUNICODE_STRING;
|
||
|
|
||
|
/* Doubly linked list entry */
|
||
|
typedef struct _LIST_ENTRY {
|
||
|
struct _LIST_ENTRY *Flink;
|
||
|
struct _LIST_ENTRY *Blink;
|
||
|
} LIST_ENTRY;
|
||
|
typedef LIST_ENTRY *PLIST_ENTRY;
|
||
|
typedef LIST_ENTRY *RESTRICTED_POINTER PRLIST_ENTRY;
|
||
|
|
||
|
/* Singly linked list entry */
|
||
|
typedef struct _SINGLE_LIST_ENTRY {
|
||
|
struct _SINGLE_LIST_ENTRY *Next;
|
||
|
} SINGLE_LIST_ENTRY;
|
||
|
typedef SINGLE_LIST_ENTRY *PSINGLE_LIST_ENTRY;
|
||
|
|
||
|
/* Doubly linked list entry (32-bit version) */
|
||
|
typedef struct LIST_ENTRY32 {
|
||
|
ULONG Flink;
|
||
|
ULONG Blink;
|
||
|
} LIST_ENTRY32;
|
||
|
typedef LIST_ENTRY32 *PLIST_ENTRY32;
|
||
|
|
||
|
/* Doubly linked list entry (64-bit version) */
|
||
|
typedef struct LIST_ENTRY64 {
|
||
|
ULONGLONG Flink;
|
||
|
ULONGLONG Blink;
|
||
|
} LIST_ENTRY64;
|
||
|
typedef LIST_ENTRY64 *PLIST_ENTRY64;
|
||
|
|
||
|
/* Singly linked list entry (32-bit version) */
|
||
|
typedef struct _SINGLE_LIST_ENTRY32 {
|
||
|
ULONG Next;
|
||
|
} SINGLE_LIST_ENTRY32;
|
||
|
typedef SINGLE_LIST_ENTRY32 *PSINGLE_LIST_ENTRY32;
|
||
|
|
||
|
/* String (32-bit version) */
|
||
|
typedef struct _STRING32 {
|
||
|
USHORT Length;
|
||
|
USHORT MaximumLength;
|
||
|
ULONG Buffer;
|
||
|
} STRING32;
|
||
|
typedef STRING32 *PSTRING32;
|
||
|
typedef STRING32 UNICODE_STRING32;
|
||
|
typedef UNICODE_STRING32 *PUNICODE_STRING32;
|
||
|
typedef STRING32 ANSI_STRING32;
|
||
|
typedef ANSI_STRING32 *PANSI_STRING32;
|
||
|
|
||
|
/* String (64-bit version) */
|
||
|
typedef struct _STRING64 {
|
||
|
USHORT Length;
|
||
|
USHORT MaximumLength;
|
||
|
ULONGLONG Buffer;
|
||
|
} STRING64;
|
||
|
typedef STRING64 *PSTRING64;
|
||
|
typedef STRING64 UNICODE_STRING64;
|
||
|
typedef UNICODE_STRING64 *PUNICODE_STRING64;
|
||
|
typedef STRING64 ANSI_STRING64;
|
||
|
typedef ANSI_STRING64 *PANSI_STRING64;
|
||
|
|
||
|
/* Object attributes (64-bit version) */
|
||
|
typedef struct _OBJECT_ATTRIBUTES64 {
|
||
|
ULONG Length;
|
||
|
ULONG64 RootDirectory;
|
||
|
ULONG64 ObjectName;
|
||
|
ULONG Attributes;
|
||
|
ULONG64 SecurityDescriptor;
|
||
|
ULONG64 SecurityQualityOfService;
|
||
|
} OBJECT_ATTRIBUTES64;
|
||
|
typedef OBJECT_ATTRIBUTES64 *POBJECT_ATTRIBUTES64;
|
||
|
typedef CONST OBJECT_ATTRIBUTES64 *PCOBJECT_ATTRIBUTES64;
|
||
|
|
||
|
/* Object attributes (32-bit version) */
|
||
|
typedef struct _OBJECT_ATTRIBUTES32 {
|
||
|
ULONG Length;
|
||
|
ULONG RootDirectory;
|
||
|
ULONG ObjectName;
|
||
|
ULONG Attributes;
|
||
|
ULONG SecurityDescriptor;
|
||
|
ULONG SecurityQualityOfService;
|
||
|
} OBJECT_ATTRIBUTES32;
|
||
|
typedef OBJECT_ATTRIBUTES32 *POBJECT_ATTRIBUTES32;
|
||
|
typedef CONST OBJECT_ATTRIBUTES32 *PCOBJECT_ATTRIBUTES32;
|
||
|
|
||
|
/* Object attributes */
|
||
|
typedef struct _OBJECT_ATTRIBUTES {
|
||
|
ULONG Length;
|
||
|
HANDLE RootDirectory;
|
||
|
PUNICODE_STRING ObjectName;
|
||
|
ULONG Attributes;
|
||
|
PVOID SecurityDescriptor;
|
||
|
PVOID SecurityQualityOfService;
|
||
|
} OBJECT_ATTRIBUTES;
|
||
|
typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES;
|
||
|
typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES;
|
||
|
|
||
|
/* NT product types */
|
||
|
typedef enum _NT_PRODUCT_TYPE {
|
||
|
NtProductWinNt = 1,
|
||
|
NtProductLanManNt = 2,
|
||
|
NtProductServer = 3
|
||
|
} NT_PRODUCT_TYPE;
|
||
|
typedef NT_PRODUCT_TYPE *PNT_PRODUCT_TYPE;
|
||
|
|
||
|
/* Suite types */
|
||
|
typedef enum _SUITE_TYPE {
|
||
|
SmallBusiness = 0,
|
||
|
Enterprise = 1,
|
||
|
BackOffice = 2,
|
||
|
CommunicationServer = 3,
|
||
|
TerminalServer = 4,
|
||
|
SmallBusinessRestricted = 5,
|
||
|
EmbeddedNT = 6,
|
||
|
DataCenter = 7,
|
||
|
SingleUserTS = 8,
|
||
|
Personal = 9,
|
||
|
Blade = 10,
|
||
|
EmbeddedRestricted = 11,
|
||
|
SecurityAppliance = 12,
|
||
|
StorageServer = 13,
|
||
|
ComputeServer = 14,
|
||
|
WHServer = 15,
|
||
|
MaxSuiteType = 16
|
||
|
} SUITE_TYPE;
|
||
|
|
||
|
/* Functions implemented as macros */
|
||
|
#define Int32x32To64( p1, p2 ) ((LONGLONG)(LONG)(p1) * (LONGLONG)(LONG)(p2))
|
||
|
#define UInt32x32To64( p1, p2 ) ((ULONGLONG)(ULONG)(p1) * (ULONGLONG)(ULONG)(p2))
|
||
|
#define Int64ShllMod32( p1, p2 ) ((ULONGLONG)(p1) << (p2))
|
||
|
#define Int64ShraMod32( p1, p2 ) ((LONGLONG)(p1) >> (p2))
|
||
|
#define Int64ShrlMod32( p1, p2 ) ((ULONGLONG)(p1) >> (p2))
|
||
|
#define InitializeObjectAttributes( x, p1, p2, p3, p4 ) \
|
||
|
{ \
|
||
|
(x)->Length = sizeof( OBJECT_ATTRIBUTES ); \
|
||
|
(x)->RootDirectory = p3; \
|
||
|
(x)->Attributes = p2; \
|
||
|
(x)->ObjectName = p1; \
|
||
|
(x)->SecurityDescriptor = p4; \
|
||
|
(x)->SecurityQualityOfService = NULL; \
|
||
|
}
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
} /* extern "C" */
|
||
|
#endif
|
||
|
|
||
|
#endif /* _NTDEF_ */
|