[RTL] Add internal RtlpDowncaseUnicodeChar function and use instead RtlDowncaseUnicodeChar internally in RTL. RtlMultiAppendUnicodeStringBuffer parameters are specified (it is documented on: http://undoc.airesoft.co.uk/ntdll.dll/RtlMultiAppendUnicodeStringBuffer.php)

svn path=/trunk/; revision=72692
This commit is contained in:
Dmitry Chapyshev 2016-09-15 20:40:29 +00:00
parent ce4186a1eb
commit 434964f61d
4 changed files with 22 additions and 7 deletions

View file

@ -86,7 +86,7 @@ RtlCustomCPToUnicodeN(IN PCPTABLEINFO CustomCP,
* @implemented * @implemented
*/ */
WCHAR NTAPI WCHAR NTAPI
RtlDowncaseUnicodeChar(IN WCHAR Source) RtlpDowncaseUnicodeChar(IN WCHAR Source)
{ {
USHORT Offset; USHORT Offset;
@ -124,6 +124,17 @@ RtlDowncaseUnicodeChar(IN WCHAR Source)
return Source + (SHORT)Offset; return Source + (SHORT)Offset;
} }
/*
* @implemented
*/
WCHAR NTAPI
RtlDowncaseUnicodeChar(IN WCHAR Source)
{
PAGED_CODE_RTL();
return RtlpDowncaseUnicodeChar(Source);
}
/* /*
* @implemented * @implemented
*/ */

View file

@ -163,7 +163,7 @@ RtlIsDosDeviceName_Ustr(IN PCUNICODE_STRING PathString)
{ {
/* Get the next lower case character */ /* Get the next lower case character */
End++; End++;
c = RtlDowncaseUnicodeChar(*End); c = RtlpDowncaseUnicodeChar(*End);
/* Check if it's a DOS device (LPT, COM, PRN, AUX, or NUL) */ /* Check if it's a DOS device (LPT, COM, PRN, AUX, or NUL) */
if ((End < &PathCopy.Buffer[OriginalLength / sizeof(WCHAR)]) && if ((End < &PathCopy.Buffer[OriginalLength / sizeof(WCHAR)]) &&
@ -189,7 +189,7 @@ RtlIsDosDeviceName_Ustr(IN PCUNICODE_STRING PathString)
} }
/* Get the next lower case character and check if it's a DOS device */ /* Get the next lower case character and check if it's a DOS device */
c = RtlDowncaseUnicodeChar(*PathCopy.Buffer); c = RtlpDowncaseUnicodeChar(*PathCopy.Buffer);
if ((c != L'l') && (c != L'c') && (c != L'p') && (c != L'a') && (c != L'n')) if ((c != L'l') && (c != L'c') && (c != L'p') && (c != L'a') && (c != L'n'))
{ {
/* Not LPT, COM, PRN, AUX, or NUL */ /* Not LPT, COM, PRN, AUX, or NUL */

View file

@ -235,4 +235,8 @@ WCHAR
NTAPI NTAPI
RtlpUpcaseUnicodeChar(IN WCHAR Source); RtlpUpcaseUnicodeChar(IN WCHAR Source);
WCHAR
NTAPI
RtlpDowncaseUnicodeChar(IN WCHAR Source);
/* EOF */ /* EOF */

View file

@ -34,9 +34,9 @@ extern PUSHORT NlsUnicodeToMbOemTable;
NTSTATUS NTSTATUS
NTAPI NTAPI
RtlMultiAppendUnicodeStringBuffer(IN PVOID Unknown, RtlMultiAppendUnicodeStringBuffer(OUT PRTL_UNICODE_STRING_BUFFER StringBuffer,
IN ULONG Unknown2, IN ULONG NumberOfAddends,
IN PVOID Unknown3) IN PCUNICODE_STRING Addends)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED; return STATUS_NOT_IMPLEMENTED;
@ -2376,7 +2376,7 @@ RtlDowncaseUnicodeString(
} }
else else
{ {
UniDest->Buffer[i] = RtlDowncaseUnicodeChar(UniSource->Buffer[i]); UniDest->Buffer[i] = RtlpDowncaseUnicodeChar(UniSource->Buffer[i]);
} }
} }