Add support for RtlFreeAnsiString (Kernel API 0x11E / 286)
This commit is contained in:
parent
96676564ca
commit
0f36366310
|
@ -111,7 +111,15 @@ XBSYSAPI VOID *RtlExtendedLargeIntegerDivide;
|
|||
XBSYSAPI VOID *RtlExtendedMagicDivide;
|
||||
XBSYSAPI VOID *RtlFillMemory;
|
||||
XBSYSAPI VOID *RtlFillMemoryUlong;
|
||||
XBSYSAPI VOID *RtlFreeAnsiString;
|
||||
|
||||
// ******************************************************************
|
||||
// * RtlFreeAnsiString
|
||||
// ******************************************************************
|
||||
XBSYSAPI EXPORTNUM(286) VOID NTAPI RtlFreeAnsiString
|
||||
(
|
||||
IN OUT PANSI_STRING AnsiString
|
||||
);
|
||||
|
||||
XBSYSAPI VOID *RtlFreeUnicodeString;
|
||||
XBSYSAPI VOID *RtlGetCallersAddress;
|
||||
|
||||
|
|
|
@ -4302,6 +4302,29 @@ XBSYSAPI EXPORTNUM(279) xboxkrnl::BOOLEAN NTAPI xboxkrnl::RtlEqualString
|
|||
return bRet;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x011E - RtlFreeAnsiString
|
||||
// ******************************************************************
|
||||
XBSYSAPI EXPORTNUM(286) VOID NTAPI xboxkrnl::RtlFreeAnsiString
|
||||
(
|
||||
IN OUT PANSI_STRING AnsiString
|
||||
)
|
||||
{
|
||||
EmuSwapFS(); // Win2k/XP FS
|
||||
|
||||
DbgPrintf("EmuKrnl (0x%X): RtlFreeAnsiString\n"
|
||||
"(\n"
|
||||
" AnsiString : 0x%.08X\n"
|
||||
");\n",
|
||||
GetCurrentThreadId(), AnsiString);
|
||||
|
||||
NtDll::RtlFreeAnsiString((NtDll::PANSI_STRING)AnsiString);
|
||||
|
||||
EmuSwapFS(); // Xbox FS
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
// * 0x0121 - RtlInitAnsiString
|
||||
// ******************************************************************
|
||||
|
|
|
@ -53,6 +53,7 @@ NtDll::FPTR_RtlInitAnsiString NtDll::RtlInitAnsiString =
|
|||
NtDll::FPTR_RtlInitUnicodeString NtDll::RtlInitUnicodeString = (NtDll::FPTR_RtlInitUnicodeString)GetProcAddress(hNtDll, "RtlInitUnicodeString");
|
||||
NtDll::FPTR_RtlAnsiStringToUnicodeString NtDll::RtlAnsiStringToUnicodeString = (NtDll::FPTR_RtlAnsiStringToUnicodeString)GetProcAddress(hNtDll, "RtlAnsiStringToUnicodeString");
|
||||
NtDll::FPTR_RtlUnicodeStringToAnsiString NtDll::RtlUnicodeStringToAnsiString = (NtDll::FPTR_RtlUnicodeStringToAnsiString)GetProcAddress(hNtDll, "RtlUnicodeStringToAnsiString");
|
||||
NtDll::FPTR_RtlFreeAnsiString NtDll::RtlFreeAnsiString = (NtDll::FPTR_RtlFreeAnsiString)GetProcAddress(hNtDll, "RtlFreeAnsiString");
|
||||
NtDll::FPTR_RtlNtStatusToDosError NtDll::RtlNtStatusToDosError = (NtDll::FPTR_RtlNtStatusToDosError)GetProcAddress(hNtDll, "RtlNtStatusToDosError");
|
||||
NtDll::FPTR_RtlTimeFieldsToTime NtDll::RtlTimeFieldsToTime = (NtDll::FPTR_RtlTimeFieldsToTime)GetProcAddress(hNtDll, "RtlTimeFieldsToTime");
|
||||
NtDll::FPTR_RtlTimeToTimeFields NtDll::RtlTimeToTimeFields = (NtDll::FPTR_RtlTimeToTimeFields)GetProcAddress(hNtDll, "RtlTimeToTimeFields");
|
||||
|
|
|
@ -663,6 +663,14 @@ typedef NTSTATUS (NTAPI *FPTR_RtlUnicodeStringToAnsiString)
|
|||
IN BOOLEAN AllocateDestinationString
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * RtlFreeAnsiString
|
||||
// ******************************************************************
|
||||
typedef VOID (NTAPI *FPTR_RtlFreeAnsiString)
|
||||
(
|
||||
IN OUT PANSI_STRING AnsiString
|
||||
);
|
||||
|
||||
// ******************************************************************
|
||||
// * RtlEqualString
|
||||
// ******************************************************************
|
||||
|
@ -1077,6 +1085,7 @@ extern FPTR_RtlInitAnsiString RtlInitAnsiString;
|
|||
extern FPTR_RtlInitUnicodeString RtlInitUnicodeString;
|
||||
extern FPTR_RtlAnsiStringToUnicodeString RtlAnsiStringToUnicodeString;
|
||||
extern FPTR_RtlUnicodeStringToAnsiString RtlUnicodeStringToAnsiString;
|
||||
extern FPTR_RtlFreeAnsiString RtlFreeAnsiString;
|
||||
extern FPTR_RtlNtStatusToDosError RtlNtStatusToDosError;
|
||||
extern FPTR_RtlTimeFieldsToTime RtlTimeFieldsToTime;
|
||||
extern FPTR_RtlTimeToTimeFields RtlTimeToTimeFields;
|
||||
|
|
|
@ -343,7 +343,7 @@ extern "C" CXBXKRNL_API uint32 CxbxKrnl_KernelThunkTable[367] =
|
|||
(uint32)PANIC(0x011B), // 0x011B (283) RtlExtendedMagicDivide
|
||||
(uint32)PANIC(0x011C), // 0x011C (284) RtlFillMemory
|
||||
(uint32)PANIC(0x011D), // 0x011D (285) RtlFillMemoryUlong
|
||||
(uint32)PANIC(0x011E), // 0x011E (286) RtlFreeAnsiString
|
||||
(uint32)xboxkrnl::RtlFreeAnsiString, // 0x011E (286)
|
||||
(uint32)PANIC(0x011F), // 0x011F (287) RtlFreeUnicodeString
|
||||
(uint32)PANIC(0x0120), // 0x0120 (288) RtlGetCallersAddress
|
||||
(uint32)&xboxkrnl::RtlInitAnsiString, // 0x0121 (289)
|
||||
|
|
Loading…
Reference in New Issue