mirror of
https://github.com/reactos/reactos.git
synced 2025-01-03 21:09:19 +00:00
[RTL]
- Fixed RtlMultiByteToUnicodeN & RtlAnsiCharToUnicodeChar prototype - Added missing paged code marker to RtlAnsiCharToUnicodeChar - Added a small hack to RtlAnsiCharToUnicodeChar. Indeed, when it's called during second stage, it's failing due to missing NLS table. Probably usetup that doesn't define a registry entry. And then, FreeLdr just passes null pointer. svn path=/trunk/; revision=50836
This commit is contained in:
parent
43a5ab1712
commit
35587944a0
2 changed files with 15 additions and 5 deletions
|
@ -226,9 +226,9 @@ RtlInitNlsTables(IN PUSHORT AnsiTableBase,
|
|||
*/
|
||||
NTSTATUS NTAPI
|
||||
RtlMultiByteToUnicodeN(
|
||||
IN PWCHAR UnicodeString,
|
||||
OUT PWCHAR UnicodeString,
|
||||
IN ULONG UnicodeSize,
|
||||
IN PULONG ResultSize,
|
||||
OUT PULONG ResultSize,
|
||||
IN PCSTR MbString,
|
||||
IN ULONG MbSize)
|
||||
{
|
||||
|
@ -286,7 +286,7 @@ RtlMultiByteToUnicodeN(
|
|||
*ResultSize = i * sizeof(WCHAR);
|
||||
}
|
||||
|
||||
return(STATUS_SUCCESS);
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -33,13 +33,23 @@ extern USHORT NlsUnicodeDefaultChar;
|
|||
*/
|
||||
WCHAR
|
||||
NTAPI
|
||||
RtlAnsiCharToUnicodeChar(IN PUCHAR *AnsiChar)
|
||||
RtlAnsiCharToUnicodeChar(IN OUT PUCHAR *AnsiChar)
|
||||
{
|
||||
ULONG Size;
|
||||
NTSTATUS Status;
|
||||
WCHAR UnicodeChar = L' ';
|
||||
|
||||
Size = (NlsLeadByteInfo[**AnsiChar] == 0) ? 1 : 2;
|
||||
PAGED_CODE_RTL();
|
||||
|
||||
if (NlsLeadByteInfo)
|
||||
{
|
||||
Size = (NlsLeadByteInfo[**AnsiChar] == 0) ? 1 : 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
DPRINT1("HACK::Shouldn't have happened! Consider fixing Usetup and registry entries it creates on install\n");
|
||||
Size = 1;
|
||||
}
|
||||
|
||||
Status = RtlMultiByteToUnicodeN(&UnicodeChar,
|
||||
sizeof(WCHAR),
|
||||
|
|
Loading…
Reference in a new issue