From: Vijay Kiran Kamuju infyquest@gmail.com
Signed-off-by: Vijay Kiran Kamuju infyquest@gmail.com Signed-off-by: Alex Henrie alexhenrie24@gmail.com --- dlls/ntdll/rtl.c | 13 ++++++++++++- include/ddk/ntddk.h | 1 + 2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c index 1e359e4a043..657d0ffd091 100644 --- a/dlls/ntdll/rtl.c +++ b/dlls/ntdll/rtl.c @@ -429,7 +429,18 @@ void WINAPI RtlInitializeGenericTable(RTL_GENERIC_TABLE *table, PRTL_GENERIC_COM PRTL_GENERIC_ALLOCATE_ROUTINE allocate, PRTL_GENERIC_FREE_ROUTINE free, void *context) { - FIXME("(%p, %p, %p, %p, %p) stub!\n", table, compare, allocate, free, context); + TRACE("(%p, %p, %p, %p, %p)\n", table, compare, allocate, free, context); + + table->TableRoot = NULL; + table->InsertOrderList.Flink = &(table->InsertOrderList); + table->InsertOrderList.Blink = &(table->InsertOrderList); + table->OrderedPointer = &(table->InsertOrderList); + table->NumberGenericTableElements = 0; + table->WhichOrderedElement = 0; + table->CompareRoutine = compare; + table->AllocateRoutine = allocate; + table->FreeRoutine = free; + table->TableContext = context; }
/****************************************************************************** diff --git a/include/ddk/ntddk.h b/include/ddk/ntddk.h index 41ad3d721bd..3a1d68b1fa8 100644 --- a/include/ddk/ntddk.h +++ b/include/ddk/ntddk.h @@ -265,6 +265,7 @@ NTSTATUS WINAPI PsSetCreateProcessNotifyRoutine(PCREATE_PROCESS_NOTIFY_ROUTINE, NTSTATUS WINAPI PsSetCreateProcessNotifyRoutineEx(PCREATE_PROCESS_NOTIFY_ROUTINE_EX,BOOLEAN); NTSTATUS WINAPI PsSetCreateThreadNotifyRoutine(PCREATE_THREAD_NOTIFY_ROUTINE); NTSTATUS WINAPI PsSetLoadImageNotifyRoutine(PLOAD_IMAGE_NOTIFY_ROUTINE); +void WINAPI RtlInitializeGenericTable(PRTL_GENERIC_TABLE,PRTL_GENERIC_COMPARE_ROUTINE,PRTL_GENERIC_ALLOCATE_ROUTINE,PRTL_GENERIC_FREE_ROUTINE,void *); void WINAPI RtlInitializeGenericTableAvl(PRTL_AVL_TABLE,PRTL_AVL_COMPARE_ROUTINE,PRTL_AVL_ALLOCATE_ROUTINE, PRTL_AVL_FREE_ROUTINE,void *); void WINAPI RtlInsertElementGenericTableAvl(PRTL_AVL_TABLE,void *,ULONG,BOOL*);
From: Vijay Kiran Kamuju infyquest@gmail.com
Signed-off-by: Vijay Kiran Kamuju infyquest@gmail.com Signed-off-by: Alex Henrie alexhenrie24@gmail.com --- dlls/ntdll/rtl.c | 4 ++-- include/ddk/ntddk.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c index 657d0ffd091..c4b844f3756 100644 --- a/dlls/ntdll/rtl.c +++ b/dlls/ntdll/rtl.c @@ -460,8 +460,8 @@ void * WINAPI RtlEnumerateGenericTableWithoutSplaying(RTL_GENERIC_TABLE *table, */ ULONG WINAPI RtlNumberGenericTableElements(RTL_GENERIC_TABLE *table) { - FIXME("(%p) stub!\n", table); - return 0; + TRACE("(%p)\n", table); + return table->NumberGenericTableElements; }
/****************************************************************************** diff --git a/include/ddk/ntddk.h b/include/ddk/ntddk.h index 3a1d68b1fa8..569552bcad0 100644 --- a/include/ddk/ntddk.h +++ b/include/ddk/ntddk.h @@ -268,5 +268,6 @@ NTSTATUS WINAPI PsSetLoadImageNotifyRoutine(PLOAD_IMAGE_NOTIFY_ROUTINE); void WINAPI RtlInitializeGenericTable(PRTL_GENERIC_TABLE,PRTL_GENERIC_COMPARE_ROUTINE,PRTL_GENERIC_ALLOCATE_ROUTINE,PRTL_GENERIC_FREE_ROUTINE,void *); void WINAPI RtlInitializeGenericTableAvl(PRTL_AVL_TABLE,PRTL_AVL_COMPARE_ROUTINE,PRTL_AVL_ALLOCATE_ROUTINE, PRTL_AVL_FREE_ROUTINE,void *); void WINAPI RtlInsertElementGenericTableAvl(PRTL_AVL_TABLE,void *,ULONG,BOOL*); +ULONG WINAPI RtlNumberGenericTableElements(PRTL_GENERIC_TABLE);
#endif
From: Vijay Kiran Kamuju infyquest@gmail.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49426 Signed-off-by: Vijay Kiran Kamuju infyquest@gmail.com Signed-off-by: Alex Henrie alexhenrie24@gmail.com --- dlls/ntdll/ntdll.spec | 2 +- dlls/ntdll/rtl.c | 9 +++++++++ dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +- include/ddk/ntddk.h | 1 + 4 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 343db34cb6d..695a30cf25c 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -708,7 +708,7 @@ @ stdcall RtlGetCurrentProcessorNumberEx(ptr) @ stdcall RtlGetCurrentTransaction() @ stdcall RtlGetDaclSecurityDescriptor(ptr ptr ptr ptr) -@ stub RtlGetElementGenericTable +@ stdcall RtlGetElementGenericTable(ptr long) # @ stub RtlGetElementGenericTableAvl @ stdcall RtlGetEnabledExtendedFeatures(int64) @ stdcall RtlGetExePath(wstr ptr) diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c index c4b844f3756..9b4dda906e9 100644 --- a/dlls/ntdll/rtl.c +++ b/dlls/ntdll/rtl.c @@ -464,6 +464,15 @@ ULONG WINAPI RtlNumberGenericTableElements(RTL_GENERIC_TABLE *table) return table->NumberGenericTableElements; }
+/****************************************************************************** + * RtlGetElementGenericTable [NTDLL.@] + */ +void * WINAPI RtlGetElementGenericTable(RTL_GENERIC_TABLE *table, ULONG index) +{ + FIXME("(%p, %u) stub!\n", table, index); + return NULL; +} + /****************************************************************************** * RtlMoveMemory [NTDLL.@] * diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index 0cd50785ad6..7bfbebc92a8 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -1098,7 +1098,7 @@ @ stdcall RtlGetControlSecurityDescriptor(ptr ptr ptr) @ stdcall RtlGetDaclSecurityDescriptor(ptr ptr ptr ptr) @ stub RtlGetDefaultCodePage -@ stub RtlGetElementGenericTable +@ stdcall RtlGetElementGenericTable(ptr long) @ stub RtlGetElementGenericTableAvl @ stdcall RtlGetExtendedContextLength(long ptr) @ stdcall RtlGetExtendedContextLength2(long ptr int64) diff --git a/include/ddk/ntddk.h b/include/ddk/ntddk.h index 569552bcad0..2940436d0ca 100644 --- a/include/ddk/ntddk.h +++ b/include/ddk/ntddk.h @@ -265,6 +265,7 @@ NTSTATUS WINAPI PsSetCreateProcessNotifyRoutine(PCREATE_PROCESS_NOTIFY_ROUTINE, NTSTATUS WINAPI PsSetCreateProcessNotifyRoutineEx(PCREATE_PROCESS_NOTIFY_ROUTINE_EX,BOOLEAN); NTSTATUS WINAPI PsSetCreateThreadNotifyRoutine(PCREATE_THREAD_NOTIFY_ROUTINE); NTSTATUS WINAPI PsSetLoadImageNotifyRoutine(PLOAD_IMAGE_NOTIFY_ROUTINE); +void * WINAPI RtlGetElementGenericTable(PRTL_GENERIC_TABLE,ULONG); void WINAPI RtlInitializeGenericTable(PRTL_GENERIC_TABLE,PRTL_GENERIC_COMPARE_ROUTINE,PRTL_GENERIC_ALLOCATE_ROUTINE,PRTL_GENERIC_FREE_ROUTINE,void *); void WINAPI RtlInitializeGenericTableAvl(PRTL_AVL_TABLE,PRTL_AVL_COMPARE_ROUTINE,PRTL_AVL_ALLOCATE_ROUTINE, PRTL_AVL_FREE_ROUTINE,void *); void WINAPI RtlInsertElementGenericTableAvl(PRTL_AVL_TABLE,void *,ULONG,BOOL*);
From: Vijay Kiran Kamuju infyquest@gmail.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49426 Signed-off-by: Vijay Kiran Kamuju infyquest@gmail.com Signed-off-by: Alex Henrie alexhenrie24@gmail.com --- dlls/ntdll/ntdll.spec | 2 +- dlls/ntdll/rtl.c | 8 ++++++++ dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +- include/ddk/ntddk.h | 1 + 4 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 695a30cf25c..85bc32a1a15 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -853,7 +853,7 @@ # @ stub RtlLockMemoryStreamRegion # @ stub RtlLogStackBackTrace @ stdcall RtlLookupAtomInAtomTable(ptr wstr ptr) -@ stub RtlLookupElementGenericTable +@ stdcall RtlLookupElementGenericTable(ptr ptr) # @ stub RtlLookupElementGenericTableAvl @ stdcall -arch=arm,arm64,x86_64 RtlLookupFunctionEntry(long ptr ptr) @ stdcall RtlMakeSelfRelativeSD(ptr ptr ptr) diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c index 9b4dda906e9..f40a40a6aae 100644 --- a/dlls/ntdll/rtl.c +++ b/dlls/ntdll/rtl.c @@ -473,6 +473,14 @@ void * WINAPI RtlGetElementGenericTable(RTL_GENERIC_TABLE *table, ULONG index) return NULL; }
+/****************************************************************************** + * RtlLookupElementGenericTable [NTDLL.@] + */ +void * WINAPI RtlLookupElementGenericTable(RTL_GENERIC_TABLE *table, void *buffer) +{ + FIXME("(%p, %p) stub!\n", table, buffer); + return NULL; +} /****************************************************************************** * RtlMoveMemory [NTDLL.@] * diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index 7bfbebc92a8..d445c5a5557 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -1183,7 +1183,7 @@ @ stdcall RtlLocateLegacyContext(ptr ptr) @ stub RtlLockBootStatusData @ stdcall RtlLookupAtomInAtomTable(ptr wstr ptr) -@ stub RtlLookupElementGenericTable +@ stdcall RtlLookupElementGenericTable(ptr ptr) @ stub RtlLookupElementGenericTableAvl @ stub RtlLookupElementGenericTableFull @ stub RtlLookupElementGenericTableFullAvl diff --git a/include/ddk/ntddk.h b/include/ddk/ntddk.h index 2940436d0ca..a6b2974ee6a 100644 --- a/include/ddk/ntddk.h +++ b/include/ddk/ntddk.h @@ -269,6 +269,7 @@ void * WINAPI RtlGetElementGenericTable(PRTL_GENERIC_TABLE,ULONG); void WINAPI RtlInitializeGenericTable(PRTL_GENERIC_TABLE,PRTL_GENERIC_COMPARE_ROUTINE,PRTL_GENERIC_ALLOCATE_ROUTINE,PRTL_GENERIC_FREE_ROUTINE,void *); void WINAPI RtlInitializeGenericTableAvl(PRTL_AVL_TABLE,PRTL_AVL_COMPARE_ROUTINE,PRTL_AVL_ALLOCATE_ROUTINE, PRTL_AVL_FREE_ROUTINE,void *); void WINAPI RtlInsertElementGenericTableAvl(PRTL_AVL_TABLE,void *,ULONG,BOOL*); +void * WINAPI RtlLookupElementGenericTable(PRTL_GENERIC_TABLE,void *); ULONG WINAPI RtlNumberGenericTableElements(PRTL_GENERIC_TABLE);
#endif