Signed-off-by: Alex Henrie alexhenrie24@gmail.com --- include/ddk/ntddk.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/ddk/ntddk.h b/include/ddk/ntddk.h index b9f8295db8..497d42da39 100644 --- a/include/ddk/ntddk.h +++ b/include/ddk/ntddk.h @@ -165,7 +165,7 @@ typedef enum _RTL_GENERIC_COMPARE_RESULTS {
typedef RTL_GENERIC_COMPARE_RESULTS (WINAPI *PRTL_AVL_COMPARE_ROUTINE)(struct _RTL_AVL_TABLE *, void *, void *);
-typedef void (WINAPI *PRTL_AVL_ALLOCATE_ROUTINE)(struct _RTL_AVL_TABLE *, LONG); +typedef void * (WINAPI *PRTL_AVL_ALLOCATE_ROUTINE)(struct _RTL_AVL_TABLE *, LONG);
typedef void (WINAPI *PRTL_AVL_FREE_ROUTINE )(struct _RTL_AVL_TABLE *, void *buffer);
And fix RtlInitializeGenericTable's return type while updating the ntdll functions to use the newly added typedefs.
Signed-off-by: Alex Henrie alexhenrie24@gmail.com --- dlls/ntdll/rtl.c | 15 ++++++++------- include/ddk/ntddk.h | 40 ++++++++++++++++++++++++++++++++++------ 2 files changed, 42 insertions(+), 13 deletions(-)
diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c index bf91423eba..4a4a7b31de 100644 --- a/dlls/ntdll/rtl.c +++ b/dlls/ntdll/rtl.c @@ -429,30 +429,31 @@ RtlDeleteSecurityObject( PSECURITY_DESCRIPTOR *ObjectDescriptor ) /****************************************************************************** * RtlInitializeGenericTable [NTDLL.@] */ -PVOID WINAPI RtlInitializeGenericTable(PVOID pTable, PVOID arg2, PVOID arg3, PVOID arg4, PVOID arg5) +void WINAPI RtlInitializeGenericTable(RTL_GENERIC_TABLE *table, PRTL_GENERIC_COMPARE_ROUTINE compare, + PRTL_GENERIC_ALLOCATE_ROUTINE allocate, PRTL_GENERIC_FREE_ROUTINE free, + void *context) { - FIXME("(%p,%p,%p,%p,%p) stub!\n", pTable, arg2, arg3, arg4, arg5); - return NULL; + FIXME("(%p, %p, %p, %p, %p) stub!\n", table, compare, allocate, free, context); }
/****************************************************************************** * RtlEnumerateGenericTableWithoutSplaying [NTDLL.@] */ -PVOID RtlEnumerateGenericTableWithoutSplaying(PVOID pTable, PVOID *RestartKey) +void * RtlEnumerateGenericTableWithoutSplaying(RTL_GENERIC_TABLE *table, void *previous) { static int warn_once;
if (!warn_once++) - FIXME("(%p,%p) stub!\n", pTable, RestartKey); + FIXME("(%p, %p) stub!\n", table, previous); return NULL; }
/****************************************************************************** * RtlNumberGenericTableElements [NTDLL.@] */ -ULONG RtlNumberGenericTableElements(PVOID pTable) +ULONG RtlNumberGenericTableElements(RTL_GENERIC_TABLE *table) { - FIXME("(%p) stub!\n", pTable); + FIXME("(%p) stub!\n", table); return 0; }
diff --git a/include/ddk/ntddk.h b/include/ddk/ntddk.h index 497d42da39..7feacce84c 100644 --- a/include/ddk/ntddk.h +++ b/include/ddk/ntddk.h @@ -146,6 +146,40 @@ typedef struct _FILE_VALID_DATA_LENGTH_INFORMATION LARGE_INTEGER ValidDataLength; } FILE_VALID_DATA_LENGTH_INFORMATION, *PFILE_VALID_DATA_LENGTH_INFORMATION;
+typedef enum _RTL_GENERIC_COMPARE_RESULTS { + GenericLessThan, + GenericGreaterThan, + GenericEqual +} RTL_GENERIC_COMPARE_RESULTS; + +typedef struct _RTL_SPLAY_LINKS { + struct _RTL_SPLAY_LINKS *Parent; + struct _RTL_SPLAY_LINKS *LeftChild; + struct _RTL_SPLAY_LINKS *RightChild; +} RTL_SPLAY_LINKS; +typedef RTL_SPLAY_LINKS *PRTL_SPLAY_LINKS; + +struct _RTL_GENERIC_TABLE; + +typedef RTL_GENERIC_COMPARE_RESULTS (WINAPI *PRTL_GENERIC_COMPARE_ROUTINE)(struct _RTL_GENERIC_TABLE *, void *, void *); + +typedef void * (WINAPI *PRTL_GENERIC_ALLOCATE_ROUTINE)(struct _RTL_GENERIC_TABLE *, LONG); + +typedef void (WINAPI *PRTL_GENERIC_FREE_ROUTINE)(struct _RTL_GENERIC_TABLE *Table, void *); + +typedef struct _RTL_GENERIC_TABLE { + PRTL_SPLAY_LINKS TableRoot; + LIST_ENTRY InsertOrderList; + LIST_ENTRY *OrderedPointer; + ULONG WhichOrderedElement; + ULONG NumberGenericTableElements; + PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine; + PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine; + PRTL_GENERIC_FREE_ROUTINE FreeRoutine; + void *TableContext; +} RTL_GENERIC_TABLE; +typedef RTL_GENERIC_TABLE *PRTL_GENERIC_TABLE; + typedef struct _RTL_BALANCED_LINKS { struct _RTL_BALANCED_LINKS *Parent; struct _RTL_BALANCED_LINKS *LeftChild; @@ -157,12 +191,6 @@ typedef RTL_BALANCED_LINKS *PRTL_BALANCED_LINKS;
struct _RTL_AVL_TABLE;
-typedef enum _RTL_GENERIC_COMPARE_RESULTS { - GenericLessThan, - GenericGreaterThan, - GenericEqual -} RTL_GENERIC_COMPARE_RESULTS; - typedef RTL_GENERIC_COMPARE_RESULTS (WINAPI *PRTL_AVL_COMPARE_ROUTINE)(struct _RTL_AVL_TABLE *, void *, void *);
typedef void * (WINAPI *PRTL_AVL_ALLOCATE_ROUTINE)(struct _RTL_AVL_TABLE *, LONG);