mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 11:31:40 +00:00
[DDK/XDK]
- Add function types, not only function pointer types, for splay/avl tree functions - RTL_SPLAY_LINKS needs to be defined regardless of RTL_USE_AVL_TABLES [NDK] - Add missing splay/avl tree function declarations - Add the function types as well. These are also not in ntifs anymore svn path=/trunk/; revision=53073
This commit is contained in:
parent
9c2f3b9dec
commit
6de4861d8c
4 changed files with 269 additions and 103 deletions
|
@ -2690,26 +2690,30 @@ typedef enum _RTL_GENERIC_COMPARE_RESULTS {
|
|||
struct _RTL_AVL_TABLE;
|
||||
|
||||
typedef RTL_GENERIC_COMPARE_RESULTS
|
||||
(NTAPI *PRTL_AVL_COMPARE_ROUTINE) (
|
||||
(NTAPI RTL_AVL_COMPARE_ROUTINE) (
|
||||
IN struct _RTL_AVL_TABLE *Table,
|
||||
IN PVOID FirstStruct,
|
||||
IN PVOID SecondStruct);
|
||||
typedef RTL_AVL_COMPARE_ROUTINE *PRTL_AVL_COMPARE_ROUTINE;
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *PRTL_AVL_ALLOCATE_ROUTINE) (
|
||||
(NTAPI RTL_AVL_ALLOCATE_ROUTINE) (
|
||||
IN struct _RTL_AVL_TABLE *Table,
|
||||
IN CLONG ByteSize);
|
||||
typedef RTL_AVL_ALLOCATE_ROUTINE *PRTL_AVL_ALLOCATE_ROUTINE;
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PRTL_AVL_FREE_ROUTINE) (
|
||||
(NTAPI RTL_AVL_FREE_ROUTINE) (
|
||||
IN struct _RTL_AVL_TABLE *Table,
|
||||
IN PVOID Buffer);
|
||||
typedef RTL_AVL_FREE_ROUTINE *PRTL_AVL_FREE_ROUTINE;
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PRTL_AVL_MATCH_FUNCTION) (
|
||||
(NTAPI RTL_AVL_MATCH_FUNCTION) (
|
||||
IN struct _RTL_AVL_TABLE *Table,
|
||||
IN PVOID UserData,
|
||||
IN PVOID MatchData);
|
||||
typedef RTL_AVL_MATCH_FUNCTION *PRTL_AVL_MATCH_FUNCTION;
|
||||
|
||||
typedef struct _RTL_BALANCED_LINKS {
|
||||
struct _RTL_BALANCED_LINKS *Parent;
|
||||
|
@ -2733,32 +2737,35 @@ typedef struct _RTL_AVL_TABLE {
|
|||
PVOID TableContext;
|
||||
} RTL_AVL_TABLE, *PRTL_AVL_TABLE;
|
||||
|
||||
#ifndef RTL_USE_AVL_TABLES
|
||||
|
||||
struct _RTL_GENERIC_TABLE;
|
||||
|
||||
typedef RTL_GENERIC_COMPARE_RESULTS
|
||||
(NTAPI *PRTL_GENERIC_COMPARE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN PVOID FirstStruct,
|
||||
IN PVOID SecondStruct);
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *PRTL_GENERIC_ALLOCATE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN CLONG ByteSize);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PRTL_GENERIC_FREE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN PVOID Buffer);
|
||||
|
||||
typedef struct _RTL_SPLAY_LINKS {
|
||||
struct _RTL_SPLAY_LINKS *Parent;
|
||||
struct _RTL_SPLAY_LINKS *LeftChild;
|
||||
struct _RTL_SPLAY_LINKS *RightChild;
|
||||
} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
|
||||
|
||||
#ifndef RTL_USE_AVL_TABLES
|
||||
|
||||
struct _RTL_GENERIC_TABLE;
|
||||
|
||||
typedef RTL_GENERIC_COMPARE_RESULTS
|
||||
(NTAPI RTL_GENERIC_COMPARE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN PVOID FirstStruct,
|
||||
IN PVOID SecondStruct);
|
||||
typedef RTL_GENERIC_COMPARE_ROUTINE *PRTL_GENERIC_COMPARE_ROUTINE;
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI RTL_GENERIC_ALLOCATE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN CLONG ByteSize);
|
||||
typedef RTL_GENERIC_ALLOCATE_ROUTINE *PRTL_GENERIC_ALLOCATE_ROUTINE;
|
||||
|
||||
typedef VOID
|
||||
(NTAPI RTL_GENERIC_FREE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN PVOID Buffer);
|
||||
typedef RTL_GENERIC_FREE_ROUTINE *PRTL_GENERIC_FREE_ROUTINE;
|
||||
|
||||
typedef struct _RTL_GENERIC_TABLE {
|
||||
PRTL_SPLAY_LINKS TableRoot;
|
||||
LIST_ENTRY InsertOrderList;
|
||||
|
@ -2775,23 +2782,23 @@ typedef struct _RTL_GENERIC_TABLE {
|
|||
|
||||
#ifdef RTL_USE_AVL_TABLES
|
||||
|
||||
#undef RTL_GENERIC_COMPARE_ROUTINE
|
||||
#undef PRTL_GENERIC_COMPARE_ROUTINE
|
||||
#undef RTL_GENERIC_COMPARE_ROUTINE
|
||||
#undef RTL_GENERIC_ALLOCATE_ROUTINE
|
||||
#undef PRTL_GENERIC_ALLOCATE_ROUTINE
|
||||
#undef RTL_GENERIC_ALLOCATE_ROUTINE
|
||||
#undef RTL_GENERIC_FREE_ROUTINE
|
||||
#undef PRTL_GENERIC_FREE_ROUTINE
|
||||
#undef RTL_GENERIC_FREE_ROUTINE
|
||||
#undef RTL_GENERIC_TABLE
|
||||
#undef RTL_GENERIC_TABLE
|
||||
#undef PRTL_GENERIC_TABLE
|
||||
|
||||
#define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
|
||||
#define RTL_GENERIC_COMPARE_ROUTINE RTL_AVL_COMPARE_ROUTINE
|
||||
#define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
|
||||
#define RTL_GENERIC_ALLOCATE_ROUTINE RTL_AVL_ALLOCATE_ROUTINE
|
||||
#define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
|
||||
#define RTL_GENERIC_FREE_ROUTINE RTL_AVL_FREE_ROUTINE
|
||||
#define RTL_GENERIC_TABLE RTL_AVL_TABLE
|
||||
#define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
|
||||
#define RTL_GENERIC_COMPARE_ROUTINE RTL_AVL_COMPARE_ROUTINE
|
||||
#define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
|
||||
#define RTL_GENERIC_ALLOCATE_ROUTINE RTL_AVL_ALLOCATE_ROUTINE
|
||||
#define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
|
||||
#define RTL_GENERIC_FREE_ROUTINE RTL_AVL_FREE_ROUTINE
|
||||
#define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
|
||||
#define RTL_GENERIC_TABLE RTL_AVL_TABLE
|
||||
#define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
|
||||
|
||||
#endif /* RTL_USE_AVL_TABLES */
|
||||
|
||||
|
|
|
@ -171,7 +171,7 @@ RtlInitEmptyUnicodeString(OUT PUNICODE_STRING UnicodeString,
|
|||
UnicodeString->MaximumLength = BufferSize;
|
||||
UnicodeString->Buffer = Buffer;
|
||||
}
|
||||
|
||||
|
||||
FORCEINLINE
|
||||
VOID
|
||||
RtlInitEmptyAnsiString(OUT PANSI_STRING AnsiString,
|
||||
|
@ -244,6 +244,107 @@ RtlConvertUlongToLuid(ULONG Ulong)
|
|||
//
|
||||
// RTL Splay Tree Functions
|
||||
//
|
||||
#ifndef RTL_USE_AVL_TABLES
|
||||
|
||||
NTSYSAPI
|
||||
VOID
|
||||
NTAPI
|
||||
RtlInitializeGenericTable(
|
||||
OUT PRTL_GENERIC_TABLE Table,
|
||||
IN PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine,
|
||||
IN PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine,
|
||||
IN PRTL_GENERIC_FREE_ROUTINE FreeRoutine,
|
||||
IN PVOID TableContext OPTIONAL
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
RtlInsertElementGenericTable(
|
||||
IN PRTL_GENERIC_TABLE Table,
|
||||
IN PVOID Buffer,
|
||||
IN CLONG BufferSize,
|
||||
OUT PBOOLEAN NewElement OPTIONAL
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
RtlInsertElementGenericTableFull(
|
||||
IN PRTL_GENERIC_TABLE Table,
|
||||
IN PVOID Buffer,
|
||||
IN CLONG BufferSize,
|
||||
OUT PBOOLEAN NewElement OPTIONAL,
|
||||
IN PVOID NodeOrParent,
|
||||
IN TABLE_SEARCH_RESULT SearchResult
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
RtlDeleteElementGenericTable(
|
||||
IN PRTL_GENERIC_TABLE Table,
|
||||
IN PVOID Buffer
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
RtlLookupElementGenericTable(
|
||||
IN PRTL_GENERIC_TABLE Table,
|
||||
IN PVOID Buffer
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
RtlLookupElementGenericTableFull(
|
||||
IN PRTL_GENERIC_TABLE Table,
|
||||
IN PVOID Buffer,
|
||||
OUT PVOID *NodeOrParent,
|
||||
OUT TABLE_SEARCH_RESULT *SearchResult
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
RtlEnumerateGenericTable(
|
||||
IN PRTL_GENERIC_TABLE Table,
|
||||
IN BOOLEAN Restart
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
RtlEnumerateGenericTableWithoutSplaying(
|
||||
IN PRTL_GENERIC_TABLE Table,
|
||||
IN OUT PVOID *RestartKey
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
RtlGetElementGenericTable(
|
||||
IN PRTL_GENERIC_TABLE Table,
|
||||
IN ULONG I
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
ULONG
|
||||
NTAPI
|
||||
RtlNumberGenericTableElements(
|
||||
IN PRTL_GENERIC_TABLE Table
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
RtlIsGenericTableEmpty(
|
||||
IN PRTL_GENERIC_TABLE Table
|
||||
);
|
||||
|
||||
#endif /* !RTL_USE_AVL_TABLES */
|
||||
|
||||
NTSYSAPI
|
||||
PRTL_SPLAY_LINKS
|
||||
NTAPI
|
||||
|
@ -254,7 +355,8 @@ RtlSplay(
|
|||
NTSYSAPI
|
||||
PRTL_SPLAY_LINKS
|
||||
NTAPI
|
||||
RtlDelete(IN PRTL_SPLAY_LINKS Links
|
||||
RtlDelete(
|
||||
IN PRTL_SPLAY_LINKS Links
|
||||
);
|
||||
|
||||
NTSYSAPI
|
||||
|
@ -339,7 +441,7 @@ RtlRealPredecessor(
|
|||
_SplayParent->RightChild = _SplayChild; \
|
||||
_SplayChild->Parent = _SplayParent; \
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// RTL AVL Tree Functions
|
||||
//
|
||||
|
@ -461,8 +563,24 @@ NTAPI
|
|||
RtlIsGenericTableEmptyAvl(
|
||||
IN PRTL_AVL_TABLE Table
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef RTL_USE_AVL_TABLES
|
||||
|
||||
#define RtlInitializeGenericTable RtlInitializeGenericTableAvl
|
||||
#define RtlInsertElementGenericTable RtlInsertElementGenericTableAvl
|
||||
#define RtlInsertElementGenericTableFull RtlInsertElementGenericTableFullAvl
|
||||
#define RtlDeleteElementGenericTable RtlDeleteElementGenericTableAvl
|
||||
#define RtlLookupElementGenericTable RtlLookupElementGenericTableAvl
|
||||
#define RtlLookupElementGenericTableFull RtlLookupElementGenericTableFullAvl
|
||||
#define RtlEnumerateGenericTable RtlEnumerateGenericTableAvl
|
||||
#define RtlEnumerateGenericTableWithoutSplaying RtlEnumerateGenericTableWithoutSplayingAvl
|
||||
#define RtlGetElementGenericTable RtlGetElementGenericTableAvl
|
||||
#define RtlNumberGenericTableElements RtlNumberGenericTableElementsAvl
|
||||
#define RtlIsGenericTableEmpty RtlIsGenericTableEmptyAvl
|
||||
|
||||
#endif /* RTL_USE_AVL_TABLES */
|
||||
|
||||
#endif /* NTOS_MODE_USER */
|
||||
|
||||
//
|
||||
// Error and Exception Functions
|
||||
|
@ -2805,7 +2923,7 @@ NTAPI
|
|||
RtlInitializeRangeList(
|
||||
IN OUT PRTL_RANGE_LIST RangeList
|
||||
);
|
||||
|
||||
|
||||
NTSYSAPI
|
||||
VOID
|
||||
NTAPI
|
||||
|
|
|
@ -296,13 +296,13 @@ C_ASSERT(HEAP_CREATE_VALID_MASK == 0x0007F0FF);
|
|||
#define RTL_INIT_OBJECT_ATTRIBUTES(n, a) \
|
||||
RTL_CONSTANT_OBJECT_ATTRIBUTES(n, a)
|
||||
|
||||
#else
|
||||
#else /* NTOS_MODE_USER */
|
||||
//
|
||||
// Message Resource Flag
|
||||
//
|
||||
#define MESSAGE_RESOURCE_UNICODE 0x0001
|
||||
|
||||
#endif
|
||||
#endif /* !NTOS_MODE_USER */
|
||||
#define MAXIMUM_LEADBYTES 12
|
||||
|
||||
//
|
||||
|
@ -350,7 +350,7 @@ extern BOOLEAN NTSYSAPI NLS_MB_OEM_CODE_PAGE_TAG;
|
|||
(__SOURCE_STRING__) \
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif /* NTOS_MODE_USER */
|
||||
|
||||
#ifdef NTOS_MODE_USER
|
||||
|
||||
|
@ -372,7 +372,7 @@ typedef enum _RTL_GENERIC_COMPARE_RESULTS
|
|||
GenericEqual
|
||||
} RTL_GENERIC_COMPARE_RESULTS;
|
||||
|
||||
#endif
|
||||
#endif /* NTOS_MODE_USER */
|
||||
|
||||
//
|
||||
// RTL Path Types
|
||||
|
@ -425,7 +425,7 @@ typedef VOID
|
|||
IN PVOID Context
|
||||
);
|
||||
|
||||
#else
|
||||
#else /* !NTOS_MODE_USER */
|
||||
|
||||
//
|
||||
// Handler during regular RTL Exceptions
|
||||
|
@ -462,7 +462,7 @@ extern const PRTL_ALLOCATE_STRING_ROUTINE RtlAllocateStringRoutine;
|
|||
extern const PRTL_FREE_STRING_ROUTINE RtlFreeStringRoutine;
|
||||
extern const PRTL_REALLOCATE_STRING_ROUTINE RtlReallocateStringRoutine;
|
||||
|
||||
#endif
|
||||
#endif /* NTOS_MODE_USER */
|
||||
|
||||
//
|
||||
// Callback for RTL Heap Enumeration
|
||||
|
@ -497,52 +497,76 @@ struct _RTL_RANGE;
|
|||
//
|
||||
// Routines and callbacks for the RTL AVL/Generic Table package
|
||||
//
|
||||
#if defined(NTOS_MODE_USER) || (!defined(NTOS_MODE_USER) && !defined(_NTIFS_))
|
||||
#ifdef NTOS_MODE_USER
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PRTL_AVL_MATCH_FUNCTION)(
|
||||
(NTAPI RTL_AVL_MATCH_FUNCTION)(
|
||||
struct _RTL_AVL_TABLE *Table,
|
||||
PVOID UserData,
|
||||
PVOID MatchData
|
||||
);
|
||||
typedef RTL_AVL_MATCH_FUNCTION *PRTL_AVL_MATCH_FUNCTION;
|
||||
|
||||
typedef RTL_GENERIC_COMPARE_RESULTS
|
||||
(NTAPI *PRTL_AVL_COMPARE_ROUTINE) (
|
||||
(NTAPI RTL_AVL_COMPARE_ROUTINE) (
|
||||
struct _RTL_AVL_TABLE *Table,
|
||||
PVOID FirstStruct,
|
||||
PVOID SecondStruct
|
||||
);
|
||||
typedef RTL_AVL_COMPARE_ROUTINE *PRTL_AVL_COMPARE_ROUTINE;
|
||||
|
||||
typedef RTL_GENERIC_COMPARE_RESULTS
|
||||
(NTAPI *PRTL_GENERIC_COMPARE_ROUTINE) (
|
||||
(NTAPI RTL_GENERIC_COMPARE_ROUTINE) (
|
||||
struct _RTL_GENERIC_TABLE *Table,
|
||||
PVOID FirstStruct,
|
||||
PVOID SecondStruct
|
||||
);
|
||||
typedef RTL_GENERIC_COMPARE_ROUTINE *PRTL_GENERIC_COMPARE_ROUTINE;
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *PRTL_GENERIC_ALLOCATE_ROUTINE) (
|
||||
(NTAPI RTL_GENERIC_ALLOCATE_ROUTINE) (
|
||||
struct _RTL_GENERIC_TABLE *Table,
|
||||
CLONG ByteSize
|
||||
);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PRTL_GENERIC_FREE_ROUTINE) (
|
||||
struct _RTL_GENERIC_TABLE *Table,
|
||||
PVOID Buffer
|
||||
);
|
||||
typedef RTL_GENERIC_ALLOCATE_ROUTINE *PRTL_GENERIC_ALLOCATE_ROUTINE;
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *PRTL_AVL_ALLOCATE_ROUTINE) (
|
||||
(NTAPI RTL_AVL_ALLOCATE_ROUTINE) (
|
||||
struct _RTL_AVL_TABLE *Table,
|
||||
CLONG ByteSize
|
||||
);
|
||||
typedef RTL_AVL_ALLOCATE_ROUTINE *PRTL_AVL_ALLOCATE_ROUTINE;
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PRTL_AVL_FREE_ROUTINE) (
|
||||
(NTAPI RTL_GENERIC_FREE_ROUTINE) (
|
||||
struct _RTL_GENERIC_TABLE *Table,
|
||||
PVOID Buffer
|
||||
);
|
||||
typedef RTL_GENERIC_FREE_ROUTINE *PRTL_GENERIC_FREE_ROUTINE;
|
||||
|
||||
typedef VOID
|
||||
(NTAPI RTL_AVL_FREE_ROUTINE) (
|
||||
struct _RTL_AVL_TABLE *Table,
|
||||
PVOID Buffer
|
||||
);
|
||||
#endif
|
||||
typedef RTL_AVL_FREE_ROUTINE *PRTL_AVL_FREE_ROUTINE;
|
||||
|
||||
#ifdef RTL_USE_AVL_TABLES
|
||||
#undef RTL_GENERIC_COMPARE_ROUTINE
|
||||
#undef PRTL_GENERIC_COMPARE_ROUTINE
|
||||
#undef RTL_GENERIC_ALLOCATE_ROUTINE
|
||||
#undef PRTL_GENERIC_ALLOCATE_ROUTINE
|
||||
#undef RTL_GENERIC_FREE_ROUTINE
|
||||
#undef PRTL_GENERIC_FREE_ROUTINE
|
||||
|
||||
#define RTL_GENERIC_COMPARE_ROUTINE RTL_AVL_COMPARE_ROUTINE
|
||||
#define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
|
||||
#define RTL_GENERIC_ALLOCATE_ROUTINE RTL_AVL_ALLOCATE_ROUTINE
|
||||
#define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
|
||||
#define RTL_GENERIC_FREE_ROUTINE RTL_AVL_FREE_ROUTINE
|
||||
#define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
|
||||
#endif /* RTL_USE_AVL_TABLES */
|
||||
|
||||
#endif /* NTOS_MODE_USER */
|
||||
|
||||
//
|
||||
// RTL Query Registry callback
|
||||
|
@ -659,6 +683,7 @@ typedef struct _RTL_BALANCED_LINKS
|
|||
//
|
||||
// RTL Avl/Generic Tables
|
||||
//
|
||||
#ifndef RTL_USE_AVL_TABLES
|
||||
typedef struct _RTL_GENERIC_TABLE
|
||||
{
|
||||
PRTL_SPLAY_LINKS TableRoot;
|
||||
|
@ -671,6 +696,7 @@ typedef struct _RTL_GENERIC_TABLE
|
|||
PRTL_GENERIC_FREE_ROUTINE FreeRoutine;
|
||||
PVOID TableContext;
|
||||
} RTL_GENERIC_TABLE, *PRTL_GENERIC_TABLE;
|
||||
#endif /* !RTL_USE_AVL_TABLES */
|
||||
|
||||
typedef struct _RTL_AVL_TABLE
|
||||
{
|
||||
|
@ -687,6 +713,14 @@ typedef struct _RTL_AVL_TABLE
|
|||
PVOID TableContext;
|
||||
} RTL_AVL_TABLE, *PRTL_AVL_TABLE;
|
||||
|
||||
#ifdef RTL_USE_AVL_TABLES
|
||||
#undef RTL_GENERIC_TABLE
|
||||
#undef PRTL_GENERIC_TABLE
|
||||
|
||||
#define RTL_GENERIC_TABLE RTL_AVL_TABLE
|
||||
#define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
|
||||
#endif /* RTL_USE_AVL_TABLES */
|
||||
|
||||
//
|
||||
// RTL Compression Buffer
|
||||
//
|
||||
|
@ -805,7 +839,7 @@ typedef struct _ACTIVATION_CONTEXT_STACK
|
|||
} ACTIVATION_CONTEXT_STACK, *PACTIVATION_CONTEXT_STACK;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#endif /* NTOS_MODE_USER */
|
||||
|
||||
//
|
||||
// ACE Structure
|
||||
|
@ -1091,7 +1125,7 @@ typedef struct _RTL_CRITICAL_SECTION
|
|||
ULONG_PTR SpinCount;
|
||||
} RTL_CRITICAL_SECTION, *PRTL_CRITICAL_SECTION;
|
||||
|
||||
#endif
|
||||
#endif /* !NTOS_MODE_USER */
|
||||
|
||||
//
|
||||
// RTL Private Heap Structures
|
||||
|
@ -1260,7 +1294,7 @@ typedef struct _TIME_ZONE_INFORMATION
|
|||
SYSTEMTIME DaylightDate;
|
||||
LONG DaylightBias;
|
||||
} TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
|
||||
#endif
|
||||
#endif /* !_WINBASE_ */
|
||||
|
||||
//
|
||||
// Native version of Timezone Structure
|
||||
|
@ -1354,5 +1388,5 @@ typedef struct _MESSAGE_RESOURCE_DATA
|
|||
MESSAGE_RESOURCE_BLOCK Blocks[ANYSIZE_ARRAY];
|
||||
} MESSAGE_RESOURCE_DATA, *PMESSAGE_RESOURCE_DATA;
|
||||
|
||||
#endif
|
||||
#endif
|
||||
#endif /* !NTOS_MODE_USER */
|
||||
#endif /* !_RTLTYPES_H */
|
||||
|
|
|
@ -246,26 +246,30 @@ typedef enum _RTL_GENERIC_COMPARE_RESULTS {
|
|||
struct _RTL_AVL_TABLE;
|
||||
|
||||
typedef RTL_GENERIC_COMPARE_RESULTS
|
||||
(NTAPI *PRTL_AVL_COMPARE_ROUTINE) (
|
||||
(NTAPI RTL_AVL_COMPARE_ROUTINE) (
|
||||
IN struct _RTL_AVL_TABLE *Table,
|
||||
IN PVOID FirstStruct,
|
||||
IN PVOID SecondStruct);
|
||||
typedef RTL_AVL_COMPARE_ROUTINE *PRTL_AVL_COMPARE_ROUTINE;
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *PRTL_AVL_ALLOCATE_ROUTINE) (
|
||||
(NTAPI RTL_AVL_ALLOCATE_ROUTINE) (
|
||||
IN struct _RTL_AVL_TABLE *Table,
|
||||
IN CLONG ByteSize);
|
||||
typedef RTL_AVL_ALLOCATE_ROUTINE *PRTL_AVL_ALLOCATE_ROUTINE;
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PRTL_AVL_FREE_ROUTINE) (
|
||||
(NTAPI RTL_AVL_FREE_ROUTINE) (
|
||||
IN struct _RTL_AVL_TABLE *Table,
|
||||
IN PVOID Buffer);
|
||||
typedef RTL_AVL_FREE_ROUTINE *PRTL_AVL_FREE_ROUTINE;
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PRTL_AVL_MATCH_FUNCTION) (
|
||||
(NTAPI RTL_AVL_MATCH_FUNCTION) (
|
||||
IN struct _RTL_AVL_TABLE *Table,
|
||||
IN PVOID UserData,
|
||||
IN PVOID MatchData);
|
||||
typedef RTL_AVL_MATCH_FUNCTION *PRTL_AVL_MATCH_FUNCTION;
|
||||
|
||||
typedef struct _RTL_BALANCED_LINKS {
|
||||
struct _RTL_BALANCED_LINKS *Parent;
|
||||
|
@ -289,32 +293,35 @@ typedef struct _RTL_AVL_TABLE {
|
|||
PVOID TableContext;
|
||||
} RTL_AVL_TABLE, *PRTL_AVL_TABLE;
|
||||
|
||||
#ifndef RTL_USE_AVL_TABLES
|
||||
|
||||
struct _RTL_GENERIC_TABLE;
|
||||
|
||||
typedef RTL_GENERIC_COMPARE_RESULTS
|
||||
(NTAPI *PRTL_GENERIC_COMPARE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN PVOID FirstStruct,
|
||||
IN PVOID SecondStruct);
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *PRTL_GENERIC_ALLOCATE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN CLONG ByteSize);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PRTL_GENERIC_FREE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN PVOID Buffer);
|
||||
|
||||
typedef struct _RTL_SPLAY_LINKS {
|
||||
struct _RTL_SPLAY_LINKS *Parent;
|
||||
struct _RTL_SPLAY_LINKS *LeftChild;
|
||||
struct _RTL_SPLAY_LINKS *RightChild;
|
||||
} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
|
||||
|
||||
#ifndef RTL_USE_AVL_TABLES
|
||||
|
||||
struct _RTL_GENERIC_TABLE;
|
||||
|
||||
typedef RTL_GENERIC_COMPARE_RESULTS
|
||||
(NTAPI RTL_GENERIC_COMPARE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN PVOID FirstStruct,
|
||||
IN PVOID SecondStruct);
|
||||
typedef RTL_GENERIC_COMPARE_ROUTINE *PRTL_GENERIC_COMPARE_ROUTINE;
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI RTL_GENERIC_ALLOCATE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN CLONG ByteSize);
|
||||
typedef RTL_GENERIC_ALLOCATE_ROUTINE *PRTL_GENERIC_ALLOCATE_ROUTINE;
|
||||
|
||||
typedef VOID
|
||||
(NTAPI RTL_GENERIC_FREE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN PVOID Buffer);
|
||||
typedef RTL_GENERIC_FREE_ROUTINE *PRTL_GENERIC_FREE_ROUTINE;
|
||||
|
||||
typedef struct _RTL_GENERIC_TABLE {
|
||||
PRTL_SPLAY_LINKS TableRoot;
|
||||
LIST_ENTRY InsertOrderList;
|
||||
|
@ -331,23 +338,23 @@ typedef struct _RTL_GENERIC_TABLE {
|
|||
|
||||
#ifdef RTL_USE_AVL_TABLES
|
||||
|
||||
#undef RTL_GENERIC_COMPARE_ROUTINE
|
||||
#undef PRTL_GENERIC_COMPARE_ROUTINE
|
||||
#undef RTL_GENERIC_COMPARE_ROUTINE
|
||||
#undef RTL_GENERIC_ALLOCATE_ROUTINE
|
||||
#undef PRTL_GENERIC_ALLOCATE_ROUTINE
|
||||
#undef RTL_GENERIC_ALLOCATE_ROUTINE
|
||||
#undef RTL_GENERIC_FREE_ROUTINE
|
||||
#undef PRTL_GENERIC_FREE_ROUTINE
|
||||
#undef RTL_GENERIC_FREE_ROUTINE
|
||||
#undef RTL_GENERIC_TABLE
|
||||
#undef RTL_GENERIC_TABLE
|
||||
#undef PRTL_GENERIC_TABLE
|
||||
|
||||
#define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
|
||||
#define RTL_GENERIC_COMPARE_ROUTINE RTL_AVL_COMPARE_ROUTINE
|
||||
#define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
|
||||
#define RTL_GENERIC_ALLOCATE_ROUTINE RTL_AVL_ALLOCATE_ROUTINE
|
||||
#define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
|
||||
#define RTL_GENERIC_FREE_ROUTINE RTL_AVL_FREE_ROUTINE
|
||||
#define RTL_GENERIC_TABLE RTL_AVL_TABLE
|
||||
#define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
|
||||
#define RTL_GENERIC_COMPARE_ROUTINE RTL_AVL_COMPARE_ROUTINE
|
||||
#define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
|
||||
#define RTL_GENERIC_ALLOCATE_ROUTINE RTL_AVL_ALLOCATE_ROUTINE
|
||||
#define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
|
||||
#define RTL_GENERIC_FREE_ROUTINE RTL_AVL_FREE_ROUTINE
|
||||
#define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
|
||||
#define RTL_GENERIC_TABLE RTL_AVL_TABLE
|
||||
#define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
|
||||
|
||||
#endif /* RTL_USE_AVL_TABLES */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue