Those are required to stop Fortnite from crashing during runtime
Signed-off-by: Infinite Loop teardown@inbox.ru --- dlls/ntdll/ntdll.spec | 10 +++--- dlls/ntdll/rtl.c | 49 +++++++++++++++++++++++++++-- dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 10 +++--- include/ddk/ntddk.h | 5 +++ 4 files changed, 62 insertions(+), 12 deletions(-)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 85bc32a..04bd76a 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec @@ -589,7 +589,7 @@ @ stdcall RtlDeleteCriticalSection(ptr) @ stdcall -arch=arm,arm64,x86_64 RtlDeleteGrowableFunctionTable(ptr) @ stub RtlDeleteElementGenericTable -@ stub RtlDeleteElementGenericTableAvl +@ stdcall RtlDeleteElementGenericTableAvl(ptr ptr) @ cdecl -arch=arm,arm64,x86_64 RtlDeleteFunctionTable(ptr) @ stub RtlDeleteNoSplay @ stub RtlDeleteOwnersRanges @@ -632,7 +632,7 @@ @ stdcall RtlEnterCriticalSection(ptr) @ stub RtlEnumProcessHeaps @ stub RtlEnumerateGenericTable -# @ stub RtlEnumerateGenericTableAvl +@ stdcall RtlEnumerateGenericTableAvl(ptr long) # @ stub RtlEnumerateGenericTableLikeADirectory @ stdcall RtlEnumerateGenericTableWithoutSplaying(ptr ptr) # @ stub RtlEnumerateGenericTableWithoutSplayingAvl @@ -709,7 +709,7 @@ @ stdcall RtlGetCurrentTransaction() @ stdcall RtlGetDaclSecurityDescriptor(ptr ptr ptr ptr) @ stdcall RtlGetElementGenericTable(ptr long) -# @ stub RtlGetElementGenericTableAvl +@ stdcall RtlGetElementGenericTableAvl(ptr long) @ stdcall RtlGetEnabledExtendedFeatures(int64) @ stdcall RtlGetExePath(wstr ptr) @ stdcall RtlGetExtendedContextLength(long ptr) @@ -854,7 +854,7 @@ # @ stub RtlLogStackBackTrace @ stdcall RtlLookupAtomInAtomTable(ptr wstr ptr) @ stdcall RtlLookupElementGenericTable(ptr ptr) -# @ stub RtlLookupElementGenericTableAvl +@ stdcall RtlLookupElementGenericTableAvl(ptr ptr) @ stdcall -arch=arm,arm64,x86_64 RtlLookupFunctionEntry(long ptr ptr) @ stdcall RtlMakeSelfRelativeSD(ptr ptr ptr) @ stdcall RtlMapGenericMask(ptr ptr) @@ -875,7 +875,7 @@ @ stdcall RtlNtStatusToDosError(long) @ stdcall RtlNtStatusToDosErrorNoTeb(long) @ stdcall RtlNumberGenericTableElements(ptr) -# @ stub RtlNumberGenericTableElementsAvl +@ stdcall RtlNumberGenericTableElementsAvl(ptr) @ stdcall RtlNumberOfClearBits(ptr) @ stdcall RtlNumberOfSetBits(ptr) @ stdcall RtlOemStringToUnicodeSize(ptr) diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c index 11067f4..d1b489b 100644 --- a/dlls/ntdll/rtl.c +++ b/dlls/ntdll/rtl.c @@ -2183,7 +2183,7 @@ BOOLEAN WINAPI RtlIsProcessorFeaturePresent( UINT feature ) void WINAPI RtlInitializeGenericTableAvl(PRTL_AVL_TABLE table, PRTL_AVL_COMPARE_ROUTINE compare, PRTL_AVL_ALLOCATE_ROUTINE allocate, PRTL_AVL_FREE_ROUTINE free, void *context) { - FIXME("%p %p %p %p %p: stub\n", table, compare, allocate, free, context); + FIXME("(%p, %p, %p, %p, %p): stub\n", table, compare, allocate, free, context); }
/*********************************************************************** @@ -2191,7 +2191,52 @@ void WINAPI RtlInitializeGenericTableAvl(PRTL_AVL_TABLE table, PRTL_AVL_COMPARE_ */ void WINAPI RtlInsertElementGenericTableAvl(PRTL_AVL_TABLE table, void *buffer, ULONG size, BOOL *element) { - FIXME("%p %p %u %p: stub\n", table, buffer, size, element); + FIXME("(%p, %p, %u, %p): stub\n", table, buffer, size, element); +} + +/*********************************************************************** + * RtlGetElementGenericTableAvl (NTDLL.@) + */ +void * WINAPI RtlGetElementGenericTableAvl(PRTL_AVL_TABLE table, ULONG index) +{ + FIXME("(%p, %u): stub\n", table, index); + return NULL; +} + +/*********************************************************************** + * RtlLookupElementGenericTableAvl (NTDLL.@) + */ +void * WINAPI RtlLookupElementGenericTableAvl(PRTL_AVL_TABLE table, void *buffer) +{ + FIXME("(%p, %p): stub\n", table, buffer); + return NULL; +} + +/*********************************************************************** + * RtlDeleteElementGenericTableAvl (NTDLL.@) + */ +BOOLEAN WINAPI RtlDeleteElementGenericTableAvl(PRTL_AVL_TABLE table, void *buffer) +{ + FIXME("(%p, %p): stub\n", table, buffer); + return FALSE; +} + +/*********************************************************************** + * RtlEnumerateGenericTableAvl (NTDLL.@) + */ +void * WINAPI RtlEnumerateGenericTableAvl(PRTL_AVL_TABLE table, BOOL restart) +{ + FIXME("(%p, %s): stub\n", table, restart ? "TRUE" : "FALSE"); + return NULL; +} + +/*********************************************************************** + * RtlNumberGenericTableElementsAvl (NTDLL.@) + */ +ULONG WINAPI RtlNumberGenericTableElementsAvl(PRTL_AVL_TABLE table) +{ + FIXME("(%p): stub\n", table); + return 0UL; }
/********************************************************************* diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec index d445c5a..4683dd3 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec @@ -1038,7 +1038,7 @@ @ stdcall RtlDeleteAce(ptr long) @ stdcall RtlDeleteAtomFromAtomTable(ptr long) @ stub RtlDeleteElementGenericTable -@ stub RtlDeleteElementGenericTableAvl +@ stdcall RtlDeleteElementGenericTableAvl(ptr ptr) @ stub RtlDeleteNoSplay @ stub RtlDeleteOwnersRanges @ stub RtlDeleteRange @@ -1054,7 +1054,7 @@ @ stdcall -arch=win32 RtlEnlargedUnsignedDivide(int64 long ptr) @ stdcall -arch=win32 -ret64 RtlEnlargedUnsignedMultiply(long long) @ stub RtlEnumerateGenericTable -@ stub RtlEnumerateGenericTableAvl +@ stdcall RtlEnumerateGenericTableAvl(ptr long) @ stub RtlEnumerateGenericTableLikeADirectory @ stdcall RtlEnumerateGenericTableWithoutSplaying(ptr ptr) @ stub RtlEnumerateGenericTableWithoutSplayingAvl @@ -1099,7 +1099,7 @@ @ stdcall RtlGetDaclSecurityDescriptor(ptr ptr ptr ptr) @ stub RtlGetDefaultCodePage @ stdcall RtlGetElementGenericTable(ptr long) -@ stub RtlGetElementGenericTableAvl +@ stdcall RtlGetElementGenericTableAvl(ptr long) @ stdcall RtlGetExtendedContextLength(long ptr) @ stdcall RtlGetExtendedContextLength2(long ptr int64) @ stub RtlGetFirstRange @@ -1184,7 +1184,7 @@ @ stub RtlLockBootStatusData @ stdcall RtlLookupAtomInAtomTable(ptr wstr ptr) @ stdcall RtlLookupElementGenericTable(ptr ptr) -@ stub RtlLookupElementGenericTableAvl +@ stdcall RtlLookupElementGenericTableAvl(ptr ptr) @ stub RtlLookupElementGenericTableFull @ stub RtlLookupElementGenericTableFullAvl @ stdcall -arch=arm,arm64,x86_64 RtlLookupFunctionEntry(long ptr ptr) @@ -1199,7 +1199,7 @@ @ stdcall RtlNtStatusToDosError(long) @ stdcall RtlNtStatusToDosErrorNoTeb(long) @ stdcall RtlNumberGenericTableElements(ptr) -@ stub RtlNumberGenericTableElementsAvl +@ stdcall RtlNumberGenericTableElementsAvl(ptr) @ stdcall RtlNumberOfClearBits(ptr) @ stdcall RtlNumberOfSetBits(ptr) @ stub RtlOemStringToCountedUnicodeString diff --git a/include/ddk/ntddk.h b/include/ddk/ntddk.h index a6b2974..ba25ffd 100644 --- a/include/ddk/ntddk.h +++ b/include/ddk/ntddk.h @@ -269,6 +269,11 @@ 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 RtlGetElementGenericTableAvl(PRTL_AVL_TABLE,ULONG); +void * WINAPI RtlLookupElementGenericTableAvl(PRTL_AVL_TABLE,void *); +BOOLEAN WINAPI RtlDeleteElementGenericTableAvl(PRTL_AVL_TABLE,void *); +void * WINAPI RtlEnumerateGenericTableAvl(PRTL_AVL_TABLE,BOOL); +ULONG WINAPI RtlNumberGenericTableElementsAvl(PRTL_AVL_TABLE); void * WINAPI RtlLookupElementGenericTable(PRTL_GENERIC_TABLE,void *); ULONG WINAPI RtlNumberGenericTableElements(PRTL_GENERIC_TABLE);
On 12/4/21 15:35, Infinite Loop wrote:
Those are required to stop Fortnite from crashing during runtime
Signed-off-by: Infinite Loop teardown@inbox.ru
Hello,
The patch looks fine to me, but note that Wine requires patch submitters to use their real name. Can you please resubmit?
ἔρρωσο, Zebediah