Kernel : Added stubs for RtlEnterCriticalSectionAndRegion and RtlLeaveCriticalSectionAndRegion

This commit is contained in:
PatrickvL 2017-02-19 00:18:15 +01:00
parent 206e5c8d0e
commit 904ae0d0c4
3 changed files with 48 additions and 5 deletions

View File

@ -168,7 +168,13 @@ XBSYSAPI EXPORTNUM(277) VOID NTAPI RtlEnterCriticalSection
IN PRTL_CRITICAL_SECTION CriticalSection
);
XBSYSAPI VOID *RtlEnterCriticalSectionAndRegion;
// ******************************************************************
// * 0x0116 - RtlEnterCriticalSectionAndRegion()
// ******************************************************************
XBSYSAPI EXPORTNUM(278) VOID NTAPI RtlEnterCriticalSectionAndRegion
(
IN PRTL_CRITICAL_SECTION CriticalSection
);
// ******************************************************************
// * 0x0117 - RtlEqualString()
@ -313,7 +319,13 @@ XBSYSAPI EXPORTNUM(294) VOID NTAPI RtlLeaveCriticalSection
IN PRTL_CRITICAL_SECTION CriticalSection
);
XBSYSAPI VOID *RtlLeaveCriticalSectionAndRegion;
// ******************************************************************
// * 0x0127 - RtlLeaveCriticalSectionAndRegion()
// ******************************************************************
XBSYSAPI EXPORTNUM(295) VOID NTAPI RtlLeaveCriticalSectionAndRegion
(
IN PRTL_CRITICAL_SECTION CriticalSection
);
// ******************************************************************
// * RtlLowerChar

View File

@ -436,6 +436,21 @@ XBSYSAPI EXPORTNUM(277) xboxkrnl::VOID NTAPI xboxkrnl::RtlEnterCriticalSection
}
}
// ******************************************************************
// * 0x0116 - RtlEnterCriticalSectionAndRegion()
// ******************************************************************
XBSYSAPI EXPORTNUM(278) xboxkrnl::VOID NTAPI xboxkrnl::RtlEnterCriticalSectionAndRegion
(
IN PRTL_CRITICAL_SECTION CriticalSection
)
{
/** sorta pointless
LOG_FUNC_ONE_ARG(CriticalSection);
//*/
LOG_UNIMPLEMENTED();
}
// ******************************************************************
// * 0x0117 - RtlEqualString()
// ******************************************************************
@ -753,6 +768,10 @@ XBSYSAPI EXPORTNUM(294) xboxkrnl::VOID NTAPI xboxkrnl::RtlLeaveCriticalSection
return;
}
/* sorta pointless
LOG_FUNC_ONE_ARG(CriticalSection);
//*/
int iSection = FindCriticalSection(CriticalSection);
if (iSection >= 0)
@ -764,12 +783,24 @@ XBSYSAPI EXPORTNUM(294) xboxkrnl::VOID NTAPI xboxkrnl::RtlLeaveCriticalSection
CriticalSection->RecursionCount = GlobalCriticalSections[iSection].NativeCriticalSection.RecursionCount;
CriticalSection->OwningThread = GlobalCriticalSections[iSection].NativeCriticalSection.OwningThread;
}
// Note: We need to execute this before debug output to avoid trouble
//NtDll::RtlLeaveCriticalSection((NtDll::_RTL_CRITICAL_SECTION*)CriticalSection);
}
/* sorta pointless
// ******************************************************************
// * 0x0127 - RtlLeaveCriticalSectionAndRegion()
// ******************************************************************
XBSYSAPI EXPORTNUM(295) xboxkrnl::VOID NTAPI xboxkrnl::RtlLeaveCriticalSectionAndRegion
(
IN PRTL_CRITICAL_SECTION CriticalSection
)
{
/** sorta pointless
LOG_FUNC_ONE_ARG(CriticalSection);
//*/
LOG_UNIMPLEMENTED();
}
// ******************************************************************

View File

@ -345,7 +345,7 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] =
(uint32)FUNC(&xboxkrnl::RtlDowncaseUnicodeChar), // 0x0113 (275)
(uint32)FUNC(&xboxkrnl::RtlDowncaseUnicodeString), // 0x0114 (276)
(uint32)FUNC(&xboxkrnl::RtlEnterCriticalSection), // 0x0115 (277)
(uint32)PANIC(0x0116), // 0x0116 (278) RtlEnterCriticalSectionAndRegion
(uint32)FUNC(&xboxkrnl::RtlEnterCriticalSectionAndRegion), // 0x0116 (278)
(uint32)FUNC(&xboxkrnl::RtlEqualString), // 0x0117 (279)
(uint32)FUNC(&xboxkrnl::RtlEqualUnicodeString), // 0x0118 (280)
(uint32)FUNC(&xboxkrnl::RtlExtendedIntegerMultiply), // 0x0119 (281)
@ -362,7 +362,7 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[379] =
(uint32)FUNC(&xboxkrnl::RtlIntegerToChar), // 0x0124 (292)
(uint32)FUNC(&xboxkrnl::RtlIntegerToUnicodeString), // 0x0125 (293)
(uint32)FUNC(&xboxkrnl::RtlLeaveCriticalSection), // 0x0126 (294)
(uint32)PANIC(0x0127), // 0x0127 (295) RtlLeaveCriticalSectionAndRegion
(uint32)FUNC(&xboxkrnl::RtlLeaveCriticalSectionAndRegion), // 0x0127 (295)
(uint32)FUNC(&xboxkrnl::RtlLowerChar), // 0x0128 (296)
(uint32)FUNC(&xboxkrnl::RtlMapGenericMask), // 0x0129 (297)
(uint32)FUNC(&xboxkrnl::RtlMoveMemory), // 0x012A (298)