diff --git a/reactos/sdk/lib/rtl/nls.c b/reactos/sdk/lib/rtl/nls.c index 26256a8614c..22e43c94f84 100644 --- a/reactos/sdk/lib/rtl/nls.c +++ b/reactos/sdk/lib/rtl/nls.c @@ -43,15 +43,17 @@ USHORT NlsUnicodeDefaultChar = 0; */ NTSTATUS NTAPI RtlCustomCPToUnicodeN(IN PCPTABLEINFO CustomCP, - PWCHAR UnicodeString, - ULONG UnicodeSize, - PULONG ResultSize, - PCHAR CustomString, - ULONG CustomSize) + OUT PWCHAR UnicodeString, + IN ULONG UnicodeSize, + OUT PULONG ResultSize OPTIONAL, + IN PCHAR CustomString, + IN ULONG CustomSize) { ULONG Size = 0; ULONG i; + PAGED_CODE_RTL(); + if (CustomCP->DBCSCodePage == 0) { /* single-byte code page */ @@ -88,6 +90,8 @@ RtlDowncaseUnicodeChar(IN WCHAR Source) { USHORT Offset; + PAGED_CODE_RTL(); + if (Source < L'A') return Source; @@ -127,6 +131,8 @@ VOID NTAPI RtlGetDefaultCodePage(OUT PUSHORT AnsiCodePage, OUT PUSHORT OemCodePage) { + PAGED_CODE_RTL(); + *AnsiCodePage = NlsAnsiCodePage; *OemCodePage = NlsOemCodePage; } @@ -140,6 +146,8 @@ RtlInitCodePageTable(IN PUSHORT TableBase, { PNLS_FILE_HEADER NlsFileHeader; + PAGED_CODE_RTL(); + DPRINT("RtlInitCodePageTable() called\n"); NlsFileHeader = (PNLS_FILE_HEADER)TableBase; @@ -191,6 +199,8 @@ RtlInitNlsTables(IN PUSHORT AnsiTableBase, IN PUSHORT CaseTableBase, OUT PNLSTABLEINFO NlsTable) { + PAGED_CODE_RTL(); + DPRINT("RtlInitNlsTables()called\n"); if (AnsiTableBase && OemTableBase && CaseTableBase) @@ -300,9 +310,9 @@ RtlConsoleMultiByteToUnicodeN(OUT PWCHAR UnicodeString, */ NTSTATUS NTAPI -RtlMultiByteToUnicodeSize(PULONG UnicodeSize, - PCSTR MbString, - ULONG MbSize) +RtlMultiByteToUnicodeSize(OUT PULONG UnicodeSize, + IN PCSTR MbString, + IN ULONG MbSize) { ULONG Length = 0; @@ -348,15 +358,17 @@ RtlMultiByteToUnicodeSize(PULONG UnicodeSize, * @unimplemented */ NTSTATUS NTAPI -RtlOemToUnicodeN(PWCHAR UnicodeString, - ULONG UnicodeSize, - PULONG ResultSize, - PCCH OemString, - ULONG OemSize) +RtlOemToUnicodeN(OUT PWCHAR UnicodeString, + IN ULONG UnicodeSize, + OUT PULONG ResultSize OPTIONAL, + IN PCCH OemString, + IN ULONG OemSize) { ULONG Size = 0; ULONG i; + PAGED_CODE_RTL(); + if (NlsMbOemCodePageTag == FALSE) { /* single-byte code page */ @@ -420,6 +432,8 @@ RtlOemToUnicodeN(PWCHAR UnicodeString, VOID NTAPI RtlResetRtlTranslations(IN PNLSTABLEINFO NlsTable) { + PAGED_CODE_RTL(); + DPRINT("RtlResetRtlTranslations() called\n"); /* Set ANSI data */ @@ -454,15 +468,17 @@ RtlResetRtlTranslations(IN PNLSTABLEINFO NlsTable) */ NTSTATUS NTAPI RtlUnicodeToCustomCPN(IN PCPTABLEINFO CustomCP, - PCHAR CustomString, - ULONG CustomSize, - PULONG ResultSize, - PWCHAR UnicodeString, - ULONG UnicodeSize) + OUT PCHAR CustomString, + IN ULONG CustomSize, + OUT PULONG ResultSize OPTIONAL, + IN PWCHAR UnicodeString, + IN ULONG UnicodeSize) { ULONG Size = 0; ULONG i; + PAGED_CODE_RTL(); + if (CustomCP->DBCSCodePage == 0) { /* single-byte code page */ @@ -495,11 +511,11 @@ RtlUnicodeToCustomCPN(IN PCPTABLEINFO CustomCP, * @unimplemented */ NTSTATUS NTAPI -RtlUnicodeToMultiByteN(PCHAR MbString, - ULONG MbSize, - PULONG ResultSize, - PCWCH UnicodeString, - ULONG UnicodeSize) +RtlUnicodeToMultiByteN(OUT PCHAR MbString, + IN ULONG MbSize, + OUT PULONG ResultSize OPTIONAL, + IN PCWCH UnicodeString, + IN ULONG UnicodeSize) { ULONG Size = 0; ULONG i; @@ -569,13 +585,15 @@ RtlUnicodeToMultiByteN(PCHAR MbString, */ NTSTATUS NTAPI -RtlUnicodeToMultiByteSize(PULONG MbSize, - PCWCH UnicodeString, - ULONG UnicodeSize) +RtlUnicodeToMultiByteSize(OUT PULONG MbSize, + IN PCWCH UnicodeString, + IN ULONG UnicodeSize) { ULONG UnicodeLength = UnicodeSize / sizeof(WCHAR); ULONG MbLength = 0; + PAGED_CODE_RTL(); + if (!NlsMbCodePageTag) { /* single-byte code page */ @@ -611,15 +629,17 @@ RtlUnicodeToMultiByteSize(PULONG MbSize, * @unimplemented */ NTSTATUS NTAPI -RtlUnicodeToOemN(PCHAR OemString, - ULONG OemSize, - PULONG ResultSize, - PCWCH UnicodeString, - ULONG UnicodeSize) +RtlUnicodeToOemN(OUT PCHAR OemString, + IN ULONG OemSize, + OUT PULONG ResultSize OPTIONAL, + IN PCWCH UnicodeString, + IN ULONG UnicodeSize) { ULONG Size = 0; ULONG i; + PAGED_CODE_RTL(); + if (NlsMbOemCodePageTag == FALSE) { /* single-byte code page */ @@ -688,6 +708,8 @@ RtlUpcaseUnicodeChar(IN WCHAR Source) { USHORT Offset; + PAGED_CODE_RTL(); + if (Source < 'a') return Source; @@ -721,6 +743,8 @@ RtlUpcaseUnicodeToCustomCPN(IN PCPTABLEINFO CustomCP, ULONG Size = 0; ULONG i; + PAGED_CODE_RTL(); + if (!CustomCP->DBCSCodePage) { /* single-byte code page */ @@ -754,16 +778,18 @@ RtlUpcaseUnicodeToCustomCPN(IN PCPTABLEINFO CustomCP, * @unimplemented */ NTSTATUS NTAPI -RtlUpcaseUnicodeToMultiByteN(PCHAR MbString, - ULONG MbSize, - PULONG ResultSize, - PCWCH UnicodeString, - ULONG UnicodeSize) +RtlUpcaseUnicodeToMultiByteN(OUT PCHAR MbString, + IN ULONG MbSize, + OUT PULONG ResultSize OPTIONAL, + IN PCWCH UnicodeString, + IN ULONG UnicodeSize) { WCHAR UpcaseChar; ULONG Size = 0; ULONG i; + PAGED_CODE_RTL(); + if (NlsMbCodePageTag == FALSE) { /* single-byte code page */ @@ -797,16 +823,18 @@ RtlUpcaseUnicodeToMultiByteN(PCHAR MbString, * @unimplemented */ NTSTATUS NTAPI -RtlUpcaseUnicodeToOemN(PCHAR OemString, - ULONG OemSize, - PULONG ResultSize, - PCWCH UnicodeString, - ULONG UnicodeSize) +RtlUpcaseUnicodeToOemN(OUT PCHAR OemString, + IN ULONG OemSize, + OUT PULONG ResultSize OPTIONAL, + IN PCWCH UnicodeString, + IN ULONG UnicodeSize) { WCHAR UpcaseChar; ULONG Size = 0; ULONG i; + PAGED_CODE_RTL(); + ASSERT(NlsUnicodeToOemTable != NULL); if (NlsMbOemCodePageTag == FALSE) @@ -879,6 +907,8 @@ RtlUpperChar(IN CHAR Source) WCHAR Unicode; CHAR Destination; + PAGED_CODE_RTL(); + /* Check for simple ANSI case */ if (Source <= 'z') {