18 #include <wine/unicode.h> 63 DPRINT(
"HACK::Shouldn't have happened! Consider fixing Usetup and registry entries it creates on install\n");
119 else if (UniDest->Length >= UniDest->MaximumLength)
125 ASSERT(!(UniDest->MaximumLength & 1) && UniDest->Length <= UniDest->MaximumLength);
138 UniDest->Buffer =
NULL;
268 ULONG RunningTotal = 0;
272 while (*
str !=
'\0' && *
str <=
' ')
str++;
279 else if (*
str ==
'-')
297 else if (
str[1] ==
'o')
302 else if (
str[1] ==
'x')
320 if (chCurrent >=
'0' && chCurrent <=
'9')
322 digit = chCurrent -
'0';
324 else if (chCurrent >=
'A' && chCurrent <=
'Z')
326 digit = chCurrent -
'A' + 10;
328 else if (chCurrent >=
'a' && chCurrent <=
'z')
330 digit = chCurrent -
'a' + 10;
337 if (digit < 0 || digit >= (
int)
base)
break;
339 RunningTotal = RunningTotal *
base + digit;
343 *
value = bMinus ? (0 - RunningTotal) : RunningTotal;
372 while (!
ret &&
len--)
ret = *p1++ - *p2++;
393 if (
s1->Length !=
s2->Length)
return FALSE;
410 if (
s1->Length !=
s2->Length)
return FALSE;
481 while (i < OemString->
Length)
728 *
pos =
'A' + digit - 10;
775 if (Radix == 0) Radix = 10;
777 if ((Radix != 2) && (Radix != 8) &&
778 (Radix != 10) && (Radix != 16))
884 if (
String2->Length < String1->Length)
887 NumChars = String1->Length;
888 pc1 = String1->Buffer;
980 ULONG RunningTotal = 0;
983 while (CharsRemaining >= 1 && *lpwstr <=
' ')
989 if (CharsRemaining >= 1)
996 else if (*lpwstr ==
'-')
1008 if (CharsRemaining >= 2 && lpwstr[0] ==
'0')
1010 if (lpwstr[1] ==
'b')
1013 CharsRemaining -= 2;
1016 else if (lpwstr[1] ==
'o')
1019 CharsRemaining -= 2;
1022 else if (lpwstr[1] ==
'x')
1025 CharsRemaining -= 2;
1040 while (CharsRemaining >= 1)
1042 wchCurrent = *lpwstr;
1044 if (wchCurrent >=
'0' && wchCurrent <=
'9')
1046 digit = wchCurrent -
'0';
1048 else if (wchCurrent >=
'A' && wchCurrent <=
'Z')
1050 digit = wchCurrent -
'A' + 10;
1052 else if (wchCurrent >=
'a' && wchCurrent <=
'z')
1054 digit = wchCurrent -
'a' + 10;
1061 if (digit < 0 || (
ULONG)digit >=
base)
break;
1063 RunningTotal = RunningTotal *
base + digit;
1068 *
value = bMinus ? (0 - RunningTotal) : RunningTotal;
1114 ASSERT(!(UniSource->Length & 1));
1136 else if (AnsiDest->Length >= AnsiDest->MaximumLength)
1141 AnsiDest->Length = AnsiDest->MaximumLength - 1;
1193 else if (UniDest->Length >= UniDest->MaximumLength)
1207 UniDest->Buffer =
NULL;
1247 else if (OemDest->Length >= OemDest->MaximumLength)
1261 OemDest->Buffer =
NULL;
1269 #define ITU_IMPLEMENTED_TESTS (IS_TEXT_UNICODE_ODD_LENGTH|IS_TEXT_UNICODE_SIGNATURE) 1281 static const WCHAR std_control_chars[] = {
'\r',
'\n',
'\t',
' ', 0x3000, 0};
1282 static const WCHAR byterev_control_chars[] = {0x0d00, 0x0a00, 0x0900, 0x2000, 0};
1286 UCHAR last_lo_byte = 0;
1287 UCHAR last_hi_byte = 0;
1288 ULONG hi_byte_diff = 0;
1289 ULONG lo_byte_diff = 0;
1291 ULONG lead_byte = 0;
1314 if (((
char *)
buf)[
len - 1] == 0)
1320 if (
len > 256)
len = 256;
1326 for (
i = 0;
i <
len;
i++)
1331 lo_byte_diff +=
max(lo_byte, last_lo_byte) -
min(lo_byte, last_lo_byte);
1332 hi_byte_diff +=
max(hi_byte, last_hi_byte) -
min(hi_byte, last_hi_byte);
1334 last_lo_byte = lo_byte;
1335 last_hi_byte = hi_byte;
1350 for (
i = 0;
i <
len;
i++)
1363 if (lead_byte < (
weight / 3))
1365 else if (lead_byte < ((
weight * 2) / 3))
1375 if (lo_byte_diff < 127 && !hi_byte_diff)
1380 if (hi_byte_diff && !lo_byte_diff)
1385 if ((
weight * lo_byte_diff) < hi_byte_diff)
1392 ((
weight * hi_byte_diff) < lo_byte_diff))
1400 for (
i = 0;
i <
len;
i++)
1402 if (!(
s[
i] & 0xff) || !(
s[
i] >> 8))
1412 for (
i = 0;
i <
len;
i++)
1424 for (
i = 0;
i <
len;
i++)
1426 if (
strchrW(byterev_control_chars,
s[
i]))
1498 else if (UniDest->Length > UniDest->MaximumLength)
1514 UniDest->Buffer =
NULL;
1601 const WCHAR *lpszCLSID =
str->Buffer;
1614 if (*lpszCLSID !=
'{')
1622 if (*lpszCLSID !=
'-')
1627 if (*lpszCLSID !=
'}')
1634 WCHAR ch = *lpszCLSID, ch2 = lpszCLSID[1];
1638 if (ch >=
'0' && ch <=
'9')
1640 else if (ch >=
'a' && ch <=
'f')
1642 else if (ch >=
'A' && ch <=
'F')
1647 if (ch2 >=
'0' && ch2 <=
'9')
1649 else if (ch2 >=
'a' && ch2 <=
'f')
1650 ch2 = ch2 -
'a' + 10;
1651 else if (ch2 >=
'A' && ch2 <=
'F')
1652 ch2 = ch2 -
'A' + 10;
1656 byte = ch << 4 | ch2;
1660 #ifndef WORDS_BIGENDIAN 1751 (
ULONG)(((*c) >=
L'a' && (*c) <=
L'z') ?
1752 (*
c) -
L'a' +
L'A' : (*c)));
1792 Length = RtlUnicodeStringToCountedOemSize(UniSource);
1814 else if (OemDest->Length > OemDest->MaximumLength)
1834 OemDest->Buffer =
NULL;
1877 *
Pos =
'A' + Digit - 10;
1914 UniDest->MaximumLength = UniSource->Length;
1918 else if (UniSource->Length > UniDest->MaximumLength)
1923 j = UniSource->Length /
sizeof(
WCHAR);
1925 for (
i = 0;
i <
j;
i++)
1930 UniDest->Length = UniSource->Length;
1964 else if (AnsiDest->Length >= AnsiDest->MaximumLength)
1978 AnsiDest->Buffer =
NULL;
2005 Length = RtlUnicodeStringToCountedOemSize(UniSource);
2022 else if (OemDest->Length > OemDest->MaximumLength)
2040 OemDest->Buffer =
NULL;
2076 else if (OemDest->Length >= OemDest->MaximumLength)
2094 OemDest->Buffer =
NULL;
2140 L"{%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
2203 while (!
ret &&
len--)
ret = *p1++ - *p2++;
2243 while (SourceLength)
2304 if (UniDest->Buffer ==
NULL)
return FALSE;
2355 UniDest->MaximumLength = UniSource->Length;
2359 else if (UniSource->Length > UniDest->MaximumLength)
2364 UniDest->Length = UniSource->Length;
2365 StopGap = UniSource->Length /
sizeof(
WCHAR);
2367 for (
i = 0 ;
i < StopGap;
i++)
2369 if (UniSource->Buffer[
i] <
L'A')
2371 UniDest->Buffer[
i] = UniSource->Buffer[
i];
2373 else if (UniSource->Buffer[
i] <=
L'Z')
2375 UniDest->Buffer[
i] = (UniSource->Buffer[
i] + (
L'a' -
L'A'));
2610 if (NewBuffer ==
NULL)
2626 Buffer->Buffer = NewBuffer;
2645 for (
i = 0;
i < MatchString->Length /
sizeof(
WCHAR);
i++)
2647 WCHAR OtherChar = MatchString->Buffer[
i];
2651 if (Char == OtherChar)
2670 const BOOLEAN WantToFind = (
Flags & RTL_FIND_CHAR_IN_UNICODE_STRING_COMPLEMENT_CHAR_SET) == 0;
2674 DPRINT(
"RtlFindCharInUnicodeString(%u, '%wZ', '%wZ', %p)\n",
2683 if (
Flags & ~(RTL_FIND_CHAR_IN_UNICODE_STRING_START_AT_END |
2684 RTL_FIND_CHAR_IN_UNICODE_STRING_COMPLEMENT_CHAR_SET |
2685 RTL_FIND_CHAR_IN_UNICODE_STRING_CASE_INSENSITIVE))
2690 if (
Flags & RTL_FIND_CHAR_IN_UNICODE_STRING_START_AT_END)
2695 if (
Found == WantToFind)
2707 if (
Found == WantToFind)
2732 ULONG ComputerNameLength;
2733 ULONG ComputerNameOemNLength;
2738 ComputerNameLength = DnsHostName->
Length;
2752 if (ComputerNameLength > 0)
2754 ComputerNameOemNLength = 0;
2758 &ComputerNameOemNLength,
2760 ComputerNameLength);
2773 ComputerNameOem.Buffer = ComputerNameOemN;
2774 ComputerNameOem.Length = (
USHORT)ComputerNameOemNLength;
2782 AllocateComputerNameString);
BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(OUT PUNICODE_STRING Destination, IN PCSZ Source)
_In_opt_ ULONG _Out_ PULONG Value
static const unsigned char pc2[48]
BOOLEAN NTAPI RtlPrefixString(const STRING *String1, const STRING *String2, BOOLEAN CaseInsensitive)
*BytesInOemString PCHAR OemString
static BOOLEAN RtlpIsCharInUnicodeString(IN WCHAR Char, IN PCUNICODE_STRING MatchString, IN BOOLEAN CaseInSensitive)
BOOLEAN NTAPI RtlEqualComputerName(IN PUNICODE_STRING ComputerName1, IN PUNICODE_STRING ComputerName2)
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
NTSYSAPI DWORD WINAPI RtlUnicodeStringToAnsiSize(const UNICODE_STRING *)
ULONG NTAPI RtlxUnicodeStringToOemSize(IN PCUNICODE_STRING UnicodeString)
static const unsigned char pc1[56]
VOID NTAPI RtlFreeOemString(IN POEM_STRING OemString)
BOOLEAN NTAPI RtlEqualDomainName(IN PUNICODE_STRING DomainName1, IN PUNICODE_STRING DomainName2)
#define IS_TEXT_UNICODE_DBCS_LEADBYTE
#define STATUS_NOT_IMPLEMENTED
LONG NTAPI RtlCompareUnicodeString(IN PCUNICODE_STRING s1, IN PCUNICODE_STRING s2, IN BOOLEAN CaseInsensitive)
#define IS_TEXT_UNICODE_REVERSE_STATISTICS
ACPI_SIZE strlen(const char *String)
NTSYSAPI NTSTATUS WINAPI RtlMultiByteToUnicodeN(LPWSTR, DWORD, LPDWORD, LPCSTR, DWORD)
GLenum GLuint GLenum GLsizei const GLchar * buf
#define STATUS_INVALID_PARAMETER
WINE_UNICODE_INLINE WCHAR * strchrW(const WCHAR *str, WCHAR ch)
NTSTATUS NTAPI RtlDnsHostNameToComputerName(PUNICODE_STRING ComputerName, PUNICODE_STRING DnsHostName, BOOLEAN AllocateComputerNameString)
#define RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING
_In_ BOOLEAN _In_ ULONG HashAlgorithm
NTSTATUS NTAPI RtlStringFromGUID(IN REFGUID Guid, OUT PUNICODE_STRING GuidString)
BOOLEAN NTAPI RtlCreateUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PCWSTR Source)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeToMultiByteSize(PULONG MbSize, PCWCH UnicodeString, ULONG UnicodeSize)
VOID NTAPI RtlCopyString(IN OUT PSTRING DestinationString, IN const STRING *SourceString OPTIONAL)
#define IS_TEXT_UNICODE_NOT_ASCII_MASK
_In_ BOOLEAN _In_ ULONG _Out_ PULONG HashValue
BOOLEAN NTAPI RtlPrefixUnicodeString(PCUNICODE_STRING String1, PCUNICODE_STRING String2, BOOLEAN CaseInsensitive)
USHORT NlsUnicodeDefaultChar
NTSTATUS NTAPI RtlOemStringToCountedUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PCOEM_STRING OemSource, IN BOOLEAN AllocateDestinationString)
NTSYSAPI NTSTATUS WINAPI RtlOemToUnicodeN(LPWSTR, DWORD, LPDWORD, LPCSTR, DWORD)
NTSTATUS NTAPI RtlUnicodeStringToOemString(IN OUT POEM_STRING OemDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
#define RtlpAllocateStringMemory
NTSTATUS NTAPI RtlOemStringToUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PCOEM_STRING OemSource, IN BOOLEAN AllocateDestinationString)
NTSTATUS NTAPI RtlAppendUnicodeToString(IN OUT PUNICODE_STRING Destination, IN PCWSTR Source)
NTSYSAPI DWORD WINAPI RtlUnicodeStringToOemSize(const UNICODE_STRING *)
VOID NTAPI RtlInitString(IN OUT PSTRING DestinationString, IN PCSZ SourceString)
#define RtlMoveMemory(Destination, Source, Length)
#define IS_TEXT_UNICODE_SIGNATURE
#define STATUS_BUFFER_TOO_SMALL
GLuint GLuint GLfloat weight
BOOLEAN NTAPI RtlEqualUnicodeString(IN CONST UNICODE_STRING *s1, IN CONST UNICODE_STRING *s2, IN BOOLEAN CaseInsensitive)
NTSTATUS NTAPI RtlAnsiStringToUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PANSI_STRING AnsiSource, IN BOOLEAN AllocateDestinationString)
NTSTATUS NTAPI RtlUpcaseUnicodeStringToAnsiString(IN OUT PANSI_STRING AnsiDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
NTSTATUS NTAPI RtlUnicodeStringToInteger(const UNICODE_STRING *str, ULONG base, ULONG *value)
VOID NTAPI RtlInitUnicodeString(IN OUT PUNICODE_STRING DestinationString, IN PCWSTR SourceString)
_Must_inspect_result_ _In_ ULONG Flags
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
VOID NTAPI RtlEraseUnicodeString(IN PUNICODE_STRING String)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
BOOLEAN NTAPI RtlEqualString(IN const STRING *s1, IN const STRING *s2, IN BOOLEAN CaseInsensitive)
_In_ ULONG _In_ ULONG Offset
NTSYSAPI NTSTATUS NTAPI RtlUnicodeToOemN(PCHAR OemString, ULONG OemSize, PULONG ResultSize, PCWCH UnicodeString, ULONG UnicodeSize)
#define IS_TEXT_UNICODE_STATISTICS
_In_ const STRING _In_ BOOLEAN CaseInSensitive
NTSTATUS NTAPI RtlIntegerToUnicodeString(IN ULONG Value, IN ULONG Base OPTIONAL, IN OUT PUNICODE_STRING String)
NTSTATUS NTAPI RtlFindCharInUnicodeString(IN ULONG Flags, IN PCUNICODE_STRING SearchString, IN PCUNICODE_STRING MatchString, OUT PUSHORT Position)
NTSTATUS NTAPI RtlInitAnsiStringEx(IN OUT PANSI_STRING DestinationString, IN PCSZ SourceString)
NTSTATUS NTAPI RtlAppendStringToString(IN PSTRING Destination, IN const STRING *Source)
#define __analysis_assume(expr)
_Out_ _Inout_ POEM_STRING DestinationString
#define STATUS_INVALID_PARAMETER_2
VOID NTAPI RtlFreeUnicodeString(IN PUNICODE_STRING UnicodeString)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
VOID NTAPI RtlFreeAnsiString(IN PANSI_STRING AnsiString)
BOOLEAN NTAPI RtlIsValidOemCharacter(IN PWCHAR Char)
_In_ const STRING _In_ BOOLEAN CaseInsensitive
#define IS_TEXT_UNICODE_REVERSE_ASCII16
_Inout_ PRTL_BUFFER _In_ SIZE_T RequiredSize
NTSTATUS NTAPI RtlCharToInteger(PCSZ str, ULONG base, PULONG value)
#define STATUS_NAME_TOO_LONG
NTSTATUS NTAPI RtlUpcaseUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
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 GLint GLint j
_In_ uint64_t _In_ uint64_t _In_ uint64_t _In_opt_ traverse_ptr * tp
#define IS_TEXT_UNICODE_REVERSE_SIGNATURE
PCHAR NlsUnicodeToOemTable
BOOLEAN NlsMbOemCodePageTag
VOID NTAPI RtlUpperString(PSTRING DestinationString, const STRING *SourceString)
#define NT_SUCCESS(StatCode)
GLenum GLuint GLenum GLsizei length
NTSTATUS NTAPI RtlInitUnicodeStringEx(OUT PUNICODE_STRING DestinationString, IN PCWSTR SourceString)
#define IS_TEXT_UNICODE_ODD_LENGTH
#define swprintf(buf, format,...)
static const UCHAR Index[8]
NTSTATUS NTAPI RtlIntegerToUnicode(IN ULONG Value, IN ULONG Base OPTIONAL, IN ULONG Length OPTIONAL, IN OUT LPWSTR String)
NTSTATUS NTAPI RtlHashUnicodeString(IN CONST UNICODE_STRING *String, IN BOOLEAN CaseInSensitive, IN ULONG HashAlgorithm, OUT PULONG HashValue)
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
LONG NTAPI RtlCompareString(IN const STRING *s1, IN const STRING *s2, IN BOOLEAN CaseInsensitive)
NTSTATUS NTAPI RtlUnicodeStringToAnsiString(IN OUT PANSI_STRING AnsiDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
VOID NTAPI RtlInitAnsiString(IN OUT PANSI_STRING DestinationString, IN PCSZ SourceString)
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE
CONST STRING * PCOEM_STRING
NTSYSAPI NTSTATUS NTAPI RtlUpcaseUnicodeToOemN(PCHAR OemString, ULONG OemSize, PULONG ResultSize, PCWCH UnicodeString, ULONG UnicodeSize)
NTSYSAPI CHAR NTAPI RtlUpperChar(CHAR Character)
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
#define RtlpFreeStringMemory
NTSYSAPI NTSTATUS NTAPI RtlUnicodeToMultiByteN(PCHAR MbString, ULONG MbSize, PULONG ResultSize, PCWCH UnicodeString, ULONG UnicodeSize)
NTSTATUS NTAPI RtlLargeIntegerToChar(IN PLARGE_INTEGER Value, IN ULONG Base, IN ULONG Length, IN OUT PCHAR String)
PUSHORT NlsOemLeadByteInfo
_Out_ _Inout_ POEM_STRING _In_ PCUNICODE_STRING SourceString
NTSTATUS NTAPI RtlValidateUnicodeString(IN ULONG Flags, IN PCUNICODE_STRING UnicodeString)
NTSTATUS NTAPI RtlUpcaseUnicodeStringToOemString(IN OUT POEM_STRING OemDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
ULONG NTAPI RtlxOemStringToUnicodeSize(IN PCOEM_STRING OemString)
IN PVOID IN PVOID IN USHORT IN USHORT Size
BOOLEAN NTAPI RtlpDidUnicodeToOemWork(IN PCUNICODE_STRING UnicodeString, IN POEM_STRING OemString)
#define IS_TEXT_UNICODE_REVERSE_CONTROLS
#define IS_TEXT_UNICODE_CONTROLS
NTSYSAPI NTSTATUS NTAPI RtlUpcaseUnicodeToMultiByteN(PCHAR MbString, ULONG MbSize, PULONG ResultSize, PCWCH UnicodeString, ULONG UnicodeSize)
#define IS_TEXT_UNICODE_ILLEGAL_CHARS
NTSYSAPI NTSTATUS WINAPI RtlMultiByteToUnicodeSize(DWORD *, LPCSTR, UINT)
#define MAX_COMPUTERNAME_LENGTH
PWCHAR NlsOemToUnicodeTable
NTSTATUS NTAPI RtlIntegerToChar(ULONG value, ULONG base, ULONG length, PCHAR str)
#define STATUS_BUFFER_OVERFLOW
WCHAR NTAPI RtlAnsiCharToUnicodeChar(IN OUT PUCHAR *AnsiChar)
#define HASH_STRING_ALGORITHM_DEFAULT
NTSTATUS NTAPI RtlAppendAsciizToString(IN OUT PSTRING Destination, IN PCSZ Source)
#define STATUS_UNMAPPABLE_CHARACTER
#define STATUS_ACCESS_VIOLATION
#define RTL_SKIP_BUFFER_COPY
NTSTATUS NTAPI RtlpSafeCopyMemory(_Out_writes_bytes_all_(Length) VOID UNALIGNED *Destination, _In_reads_bytes_(Length) CONST VOID UNALIGNED *Source, _In_ SIZE_T Length)
BOOLEAN NTAPI RtlIsTextUnicode(CONST VOID *buf, INT len, INT *pf)
ULONG NTAPI RtlxUnicodeStringToAnsiSize(IN PCUNICODE_STRING UnicodeString)
WCHAR NTAPI RtlpUpcaseUnicodeChar(IN WCHAR Source)
NTSTATUS NTAPI RtlUnicodeStringToCountedOemString(IN OUT POEM_STRING OemDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
NTSTATUS NTAPI RtlpEnsureBufferSize(IN ULONG Flags, IN OUT PRTL_BUFFER Buffer, IN SIZE_T RequiredSize)
_In_ const STRING * String2
NTSTATUS NTAPI RtlGUIDFromString(IN UNICODE_STRING *str, OUT GUID *guid)
#define IS_TEXT_UNICODE_REVERSE_MASK
#define RtlZeroMemory(Destination, Length)
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
WCHAR NTAPI RtlpDowncaseUnicodeChar(IN WCHAR Source)
NTSTATUS NTAPI RtlDowncaseUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
ULONG NTAPI RtlxAnsiStringToUnicodeSize(IN PCANSI_STRING AnsiString)
NTSTATUS NTAPI RtlDuplicateUnicodeString(IN ULONG Flags, IN PCUNICODE_STRING SourceString, OUT PUNICODE_STRING DestinationString)
#define HASH_STRING_ALGORITHM_X65599
#define IS_TEXT_UNICODE_ASCII16
_In_ PSID _In_ BOOLEAN AllocateDestinationString
IN BOOLEAN OUT PSTR Buffer
unsigned short MaximumLength
NTSTATUS NTAPI RtlInt64ToUnicodeString(IN ULONGLONG Value, IN ULONG Base OPTIONAL, IN OUT PUNICODE_STRING String)
#define IS_TEXT_UNICODE_NULL_BYTES
PUSHORT NlsUnicodeToMbOemTable
#define IS_TEXT_UNICODE_UNICODE_MASK
size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
NTSTATUS NTAPI RtlMultiAppendUnicodeStringBuffer(OUT PRTL_UNICODE_STRING_BUFFER StringBuffer, IN ULONG NumberOfAddends, IN PCUNICODE_STRING Addends)
VOID NTAPI RtlCopyUnicodeString(IN OUT PUNICODE_STRING DestinationString, IN PCUNICODE_STRING SourceString)
NTSTATUS NTAPI RtlAppendUnicodeStringToString(IN OUT PUNICODE_STRING Destination, IN PCUNICODE_STRING Source)
#define RtlOemStringToCountedUnicodeSize(STRING)
NTSTATUS NTAPI RtlUpcaseUnicodeStringToCountedOemString(IN OUT POEM_STRING OemDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
#define IS_TEXT_UNICODE_NOT_UNICODE_MASK
NTSYSAPI UINT WINAPI RtlOemStringToUnicodeSize(const STRING *)
PULONG MinorVersion OPTIONAL
#define STATUS_INVALID_COMPUTER_NAME