From 29b9515e39f1fa2f9bffdfd028aa6484763f8ac6 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath <[email protected]> Date: Sun, 24 May 2020 09:39:17 +0530 Subject: [PATCH] headers/ntdef.h: add missing symbols from reactos
Signed-off-by: Biswapriyo Nath <[email protected]> --- mingw-w64-headers/include/ntdef.h | 90 ++++++++++++++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) diff --git a/mingw-w64-headers/include/ntdef.h b/mingw-w64-headers/include/ntdef.h index e3e29e7..f565ea6 100644 --- a/mingw-w64-headers/include/ntdef.h +++ b/mingw-w64-headers/include/ntdef.h @@ -489,6 +489,31 @@ typedef const UNICODE_STRING* PCUNICODE_STRING; #define UNICODE_NULL ((WCHAR)0) +#define UNICODE_STRING_MAX_BYTES ((USHORT) 65534) +#define UNICODE_STRING_MAX_CHARS (32767) + +#ifdef _MSC_VER +#define DECLARE_UNICODE_STRING_SIZE(_var, _size) \ + WCHAR _var ## _buffer[_size]; \ + __pragma(warning(push)) __pragma(warning(disable:4221)) __pragma(warning(disable:4204)) \ + UNICODE_STRING _var = { 0, (_size) * sizeof(WCHAR) , _var ## _buffer } \ + __pragma(warning(pop)) + +#define DECLARE_CONST_UNICODE_STRING(_var, _string) \ + const WCHAR _var##_buffer[] = _string; \ + __pragma(warning(push)) __pragma(warning(disable:4221)) __pragma(warning(disable:4204)) \ + const UNICODE_STRING _var = { sizeof(_string) - sizeof(WCHAR), sizeof(_string), (PWCH)_var##_buffer } \ + __pragma(warning(pop)) +#else +#define DECLARE_UNICODE_STRING_SIZE(_var, _size) \ + WCHAR _var ## _buffer[_size]; \ + UNICODE_STRING _var = { 0, (_size) * sizeof(WCHAR) , _var ## _buffer } + +#define DECLARE_CONST_UNICODE_STRING(_var, _string) \ + const WCHAR _var##_buffer[] = _string; \ + const UNICODE_STRING _var = { sizeof(_string) - sizeof(WCHAR), sizeof(_string), (PWCH)_var##_buffer } +#endif + typedef struct _CSTRING { USHORT Length; USHORT MaximumLength; @@ -512,6 +537,8 @@ typedef PSTRING POEM_STRING; typedef CONST STRING* PCOEM_STRING; typedef STRING CANSI_STRING; typedef PSTRING PCANSI_STRING; +typedef STRING UTF8_STRING; +typedef PSTRING PUTF8_STRING; typedef struct _STRING32 { USHORT Length; @@ -560,6 +587,26 @@ typedef struct _OBJECT_ATTRIBUTES { #endif typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES; +typedef struct _OBJECT_ATTRIBUTES64 { + ULONG Length; + ULONG64 RootDirectory; + ULONG64 ObjectName; + ULONG Attributes; + ULONG64 SecurityDescriptor; + ULONG64 SecurityQualityOfService; +} OBJECT_ATTRIBUTES64, *POBJECT_ATTRIBUTES64; +typedef CONST OBJECT_ATTRIBUTES64 *PCOBJECT_ATTRIBUTES64; + +typedef struct _OBJECT_ATTRIBUTES32 { + ULONG Length; + ULONG RootDirectory; + ULONG ObjectName; + ULONG Attributes; + ULONG SecurityDescriptor; + ULONG SecurityQualityOfService; +} OBJECT_ATTRIBUTES32, *POBJECT_ATTRIBUTES32; +typedef CONST OBJECT_ATTRIBUTES32 *PCOBJECT_ATTRIBUTES32; + /* Values for the Attributes member */ #define OBJ_INHERIT 0x00000002 #define OBJ_PERMANENT 0x00000010 @@ -569,7 +616,9 @@ typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES; #define OBJ_OPENLINK 0x00000100 #define OBJ_KERNEL_HANDLE 0x00000200 #define OBJ_FORCE_ACCESS_CHECK 0x00000400 -#define OBJ_VALID_ATTRIBUTES 0x000007F2 +#define OBJ_IGNORE_IMPERSONATED_DEVICEMAP 0x00000800 +#define OBJ_DONT_REPARSE 0x00001000 +#define OBJ_VALID_ATTRIBUTES 0x00001FF2 /* Helper Macro */ #define InitializeObjectAttributes(p,n,a,r,s) { \ @@ -581,6 +630,9 @@ typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES; (p)->SecurityQualityOfService = NULL; \ } +#define RTL_CONSTANT_OBJECT_ATTRIBUTES(n, a) { sizeof(OBJECT_ATTRIBUTES), NULL, RTL_CONST_CAST(PUNICODE_STRING)(n), a, NULL, NULL } +#define RTL_INIT_OBJECT_ATTRIBUTES(n, a) RTL_CONSTANT_OBJECT_ATTRIBUTES(n, a) + /* Product Types */ typedef enum _NT_PRODUCT_TYPE { NtProductWinNt = 1, @@ -623,12 +675,36 @@ typedef struct LIST_ENTRY64 { } LIST_ENTRY64, *PLIST_ENTRY64; /* Singly Linked Lists */ +typedef struct _SINGLE_LIST_ENTRY32 { + ULONG Next; +} SINGLE_LIST_ENTRY32, *PSINGLE_LIST_ENTRY32; + typedef struct _SINGLE_LIST_ENTRY { struct _SINGLE_LIST_ENTRY *Next; } SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; #endif /* _LIST_ENTRY_DEFINED */ +typedef struct _RTL_BALANCED_NODE { + __C89_NAMELESS union { + struct _RTL_BALANCED_NODE *Children[2]; + __C89_NAMELESS struct { + struct _RTL_BALANCED_NODE *Left; + struct _RTL_BALANCED_NODE *Right; + }; + }; + +#define RTL_BALANCED_NODE_RESERVED_PARENT_MASK 3 + + __C89_NAMELESS union { + UCHAR Red : 1; + UCHAR Balance : 2; + ULONG_PTR ParentValue; + }; +} RTL_BALANCED_NODE, *PRTL_BALANCED_NODE; + +#define RTL_BALANCED_NODE_GET_PARENT_POINTER(Node) ((PRTL_BALANCED_NODE)((Node)->ParentValue & ~RTL_BALANCED_NODE_RESERVED_PARENT_MASK)) + #ifndef ___PROCESSOR_NUMBER_DEFINED #define ___PROCESSOR_NUMBER_DEFINED typedef struct _PROCESSOR_NUMBER { @@ -660,6 +736,14 @@ typedef struct _GROUP_AFFINITY { } GROUP_AFFINITY, *PGROUP_AFFINITY; #endif /* !___GROUP_AFFINITY_DEFINED */ +#ifndef _DEFINED__WNF_STATE_NAME +#define _DEFINED__WNF_STATE_NAME +typedef struct _WNF_STATE_NAME { + ULONG Data[2]; +} WNF_STATE_NAME, *PWNF_STATE_NAME; +typedef const WNF_STATE_NAME *PCWNF_STATE_NAME; +#endif + /* Helper Macros */ #define RTL_FIELD_TYPE(type, field) (((type*)0)->field) #define RTL_BITS_OF(sizeOfArg) (sizeof(sizeOfArg) * 8) @@ -683,6 +767,9 @@ typedef struct _GROUP_AFFINITY { #define RTL_NUMBER_OF(A) RTL_NUMBER_OF_V1(A) #endif #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A) +#define _ARRAYSIZE(A) RTL_NUMBER_OF_V1(A) + +#define RTL_NUMBER_OF_FIELD(type, field) (RTL_NUMBER_OF(RTL_FIELD_TYPE(type, field))) /* Type Limits */ #define MINCHAR 0x80 @@ -724,6 +811,7 @@ typedef struct _GROUP_AFFINITY { #define VER_SUITE_STORAGE_SERVER 0x00002000 #define VER_SUITE_COMPUTE_SERVER 0x00004000 #define VER_SUITE_WH_SERVER 0x00008000 +#define VER_SUITE_MULTIUSERTS 0x00020000 /* Primary language IDs. */ #define LANG_NEUTRAL 0x00 -- 2.26.2
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
