57 if (!CustomCP->DBCSCodePage)
60 if (CustomSize > (UnicodeSize /
sizeof(
WCHAR)))
162 DPRINT(
"RtlInitCodePageTable() called\n");
215 DPRINT(
"RtlInitNlsTables()called\n");
217 if (AnsiTableBase && OemTableBase && CaseTableBase)
222 NlsTable->UpperCaseTable = (
PUSHORT)CaseTableBase + 2;
223 NlsTable->LowerCaseTable = (
PUSHORT)CaseTableBase + *((
PUSHORT)CaseTableBase + 1) + 2;
245 if (MbSize > (UnicodeSize /
sizeof(
WCHAR)))
265 PCSTR MbEnd = MbString + MbSize;
267 for (
i = 0;
i < UnicodeSize /
sizeof(
WCHAR) && MbString < MbEnd;
i++)
269 Char = *(
PUCHAR)MbString++;
285 if (MbString < MbEnd)
290 *ResultSize =
i *
sizeof(
WCHAR);
311 DPRINT1(
"RtlConsoleMultiByteToUnicodeN calling RtlMultiByteToUnicodeN\n");
336 *UnicodeSize = MbSize *
sizeof(
WCHAR);
387 if (OemSize > (UnicodeSize /
sizeof(
WCHAR)))
423 if (!OemLeadByteInfo)
435 *ResultSize =
i *
sizeof(
WCHAR);
449 DPRINT(
"RtlResetRtlTranslations() called\n");
494 if (!CustomCP->DBCSCodePage)
497 if (UnicodeSize > (CustomSize *
sizeof(
WCHAR)))
540 Size = (UnicodeSize > (MbSize *
sizeof(
WCHAR)))
541 ? MbSize : (UnicodeSize /
sizeof(
WCHAR));
565 *MbString++ =
LOBYTE(WideChar);
573 *MbString++ =
LOBYTE(MbChar);
579 *MbString++ =
HIBYTE(MbChar);
580 *MbString++ =
LOBYTE(MbChar);
587 *ResultSize = MbSize -
i;
602 ULONG UnicodeLength = UnicodeSize /
sizeof(
WCHAR);
610 *MbSize = UnicodeLength;
617 while (UnicodeLength--)
623 MbLength +=
sizeof(
WCHAR);
654 UnicodeSize /=
sizeof(
WCHAR);
658 while (OemSize && UnicodeSize)
668 while (OemSize && UnicodeSize)
703 return (
Source - (
'a' -
'A'));
745 if (!CustomCP->DBCSCodePage)
748 if (UnicodeSize > (CustomSize *
sizeof(
WCHAR)))
759 *CustomString = ((
PCHAR)CustomCP->WideCharTable)[UpcaseChar];
793 if (UnicodeSize > (MbSize *
sizeof(
WCHAR)))
838 if (UnicodeSize > (OemSize *
sizeof(
WCHAR)))
890 *ResultSize = OemSize -
i;
914 return Source ^ (
'a' -
'A');
CHAR NTAPI RtlUpperChar(IN CHAR Source)
PCHAR NlsUnicodeToAnsiTable
*BytesInOemString PCHAR OemString
static CODEPAGE_ENTRY AnsiCodePage
_In_ ULONG _In_ ULONG _In_ ULONG Length
PUSHORT NlsUnicodeToMbAnsiTable
struct _NLS_FILE_HEADER * PNLS_FILE_HEADER
PUSHORT NlsUnicodeUpcaseTable
IN PVOID IN PVOID IN USHORT IN USHORT Size
WDF_EXTERN_C_START typedef _Must_inspect_result_ _In_opt_ PCUNICODE_STRING UnicodeString
NTSTATUS NTAPI RtlUnicodeToOemN(OUT PCHAR OemString, IN ULONG OemSize, OUT PULONG ResultSize OPTIONAL, IN PCWCH UnicodeString, IN ULONG UnicodeSize)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
PUSHORT NlsUnicodeLowercaseTable
NTSTATUS NTAPI RtlUnicodeToMultiByteSize(OUT PULONG MbSize, IN PCWCH UnicodeString, IN ULONG UnicodeSize)
WCHAR NTAPI RtlUpcaseUnicodeChar(IN WCHAR Source)
NTSTATUS NTAPI RtlCustomCPToUnicodeN(IN PCPTABLEINFO CustomCP, OUT PWCHAR UnicodeString, IN ULONG UnicodeSize, OUT PULONG ResultSize OPTIONAL, IN PCHAR CustomString, IN ULONG CustomSize)
NTSTATUS NTAPI RtlMultiByteToUnicodeN(OUT PWCHAR UnicodeString, IN ULONG UnicodeSize, OUT PULONG ResultSize, IN PCSTR MbString, IN ULONG MbSize)
PUSHORT NlsOemToUnicodeTable
VOID NTAPI RtlGetDefaultCodePage(OUT PUSHORT AnsiCodePage, OUT PUSHORT OemCodePage)
VOID NTAPI RtlResetRtlTranslations(IN PNLSTABLEINFO NlsTable)
PCHAR NlsUnicodeToOemTable
NTSTATUS NTAPI RtlMultiByteToUnicodeSize(OUT PULONG UnicodeSize, IN PCSTR MbString, IN ULONG MbSize)
NTSTATUS NTAPI RtlUpcaseUnicodeToOemN(OUT PCHAR OemString, IN ULONG OemSize, OUT PULONG ResultSize OPTIONAL, IN PCWCH UnicodeString, IN ULONG UnicodeSize)
UCHAR LeadByte[MAXIMUM_LEADBYTES]
NTSTATUS NTAPI RtlOemToUnicodeN(OUT PWCHAR UnicodeString, IN ULONG UnicodeSize, OUT PULONG ResultSize OPTIONAL, IN PCCH OemString, IN ULONG OemSize)
USHORT TransUniDefaultChar
NTSTATUS NTAPI RtlConsoleMultiByteToUnicodeN(OUT PWCHAR UnicodeString, IN ULONG UnicodeSize, OUT PULONG ResultSize, IN PCSTR MbString, IN ULONG MbSize, OUT PULONG Unknown)
USHORT MaximumCharacterSize
PUSHORT NlsAnsiToUnicodeTable
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
PUSHORT NlsOemLeadByteInfo
NTSTATUS NTAPI RtlUpcaseUnicodeToMultiByteN(OUT PCHAR MbString, IN ULONG MbSize, OUT PULONG ResultSize OPTIONAL, IN PCWCH UnicodeString, IN ULONG UnicodeSize)
static CODEPAGE_ENTRY OemCodePage
BOOLEAN NlsMbOemCodePageTag
#define MAXIMUM_LEADBYTES
VOID NTAPI RtlInitCodePageTable(IN PUSHORT TableBase, OUT PCPTABLEINFO CodePageTable)
_In_ ULONG _In_ ULONG Offset
NTSTATUS NTAPI RtlUnicodeToCustomCPN(IN PCPTABLEINFO CustomCP, OUT PCHAR CustomString, IN ULONG CustomSize, OUT PULONG ResultSize OPTIONAL, IN PWCHAR UnicodeString, IN ULONG UnicodeSize)
WCHAR NTAPI RtlDowncaseUnicodeChar(IN WCHAR Source)
#define STATUS_BUFFER_OVERFLOW
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
NTSTATUS NTAPI RtlUnicodeToMultiByteN(OUT PCHAR MbString, IN ULONG MbSize, OUT PULONG ResultSize OPTIONAL, IN PCWCH UnicodeString, IN ULONG UnicodeSize)
WCHAR NTAPI RtlpUpcaseUnicodeChar(IN WCHAR Source)
PUSHORT NlsUnicodeToMbOemTable
_Out_ PCPTABLEINFO CodePageTable
#define RtlCopyMemory(Destination, Source, Length)
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
WCHAR NTAPI RtlpDowncaseUnicodeChar(IN WCHAR Source)
NTSTATUS NTAPI RtlUpcaseUnicodeToCustomCPN(IN PCPTABLEINFO CustomCP, OUT PCHAR CustomString, IN ULONG CustomSize, OUT PULONG ResultSize OPTIONAL, IN PWCHAR UnicodeString, IN ULONG UnicodeSize)
USHORT NlsUnicodeDefaultChar
VOID NTAPI RtlInitNlsTables(IN PUSHORT AnsiTableBase, IN PUSHORT OemTableBase, IN PUSHORT CaseTableBase, OUT PNLSTABLEINFO NlsTable)
PULONG MinorVersion OPTIONAL