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)
556 DPRINT1(
"\\u%04x is not valid for OEM\n", *Char);
739 *
pos =
'A' + digit - 10;
786 if (Radix == 0) Radix = 10;
788 if ((Radix != 2) && (Radix != 8) &&
789 (Radix != 10) && (Radix != 16))
895 if (
String2->Length < String1->Length)
898 NumChars = String1->Length;
899 pc1 = String1->Buffer;
991 ULONG RunningTotal = 0;
994 while (CharsRemaining >= 1 && *lpwstr <=
' ')
1000 if (CharsRemaining >= 1)
1007 else if (*lpwstr ==
'-')
1019 if (CharsRemaining >= 2 && lpwstr[0] ==
'0')
1021 if (lpwstr[1] ==
'b')
1024 CharsRemaining -= 2;
1027 else if (lpwstr[1] ==
'o')
1030 CharsRemaining -= 2;
1033 else if (lpwstr[1] ==
'x')
1036 CharsRemaining -= 2;
1051 while (CharsRemaining >= 1)
1053 wchCurrent = *lpwstr;
1055 if (wchCurrent >=
'0' && wchCurrent <=
'9')
1057 digit = wchCurrent -
'0';
1059 else if (wchCurrent >=
'A' && wchCurrent <=
'Z')
1061 digit = wchCurrent -
'A' + 10;
1063 else if (wchCurrent >=
'a' && wchCurrent <=
'z')
1065 digit = wchCurrent -
'a' + 10;
1072 if (digit < 0 || (
ULONG)digit >=
base)
break;
1074 RunningTotal = RunningTotal *
base + digit;
1079 *
value = bMinus ? (0 - RunningTotal) : RunningTotal;
1125 ASSERT(!(UniSource->Length & 1));
1147 else if (AnsiDest->Length >= AnsiDest->MaximumLength)
1152 AnsiDest->Length = AnsiDest->MaximumLength - 1;
1204 else if (UniDest->Length >= UniDest->MaximumLength)
1218 UniDest->Buffer =
NULL;
1258 else if (OemDest->Length >= OemDest->MaximumLength)
1272 OemDest->Buffer =
NULL;
1280#define ITU_IMPLEMENTED_TESTS (IS_TEXT_UNICODE_ODD_LENGTH|IS_TEXT_UNICODE_SIGNATURE)
1292 static const WCHAR std_control_chars[] = {
'\r',
'\n',
'\t',
' ', 0x3000, 0};
1293 static const WCHAR byterev_control_chars[] = {0x0d00, 0x0a00, 0x0900, 0x2000, 0};
1297 UCHAR last_lo_byte = 0;
1298 UCHAR last_hi_byte = 0;
1299 ULONG hi_byte_diff = 0;
1300 ULONG lo_byte_diff = 0;
1302 ULONG lead_byte = 0;
1325 if (((
char *)
buf)[
len - 1] == 0)
1331 if (
len > 256)
len = 256;
1337 for (
i = 0;
i <
len;
i++)
1342 lo_byte_diff +=
max(lo_byte, last_lo_byte) -
min(lo_byte, last_lo_byte);
1343 hi_byte_diff +=
max(hi_byte, last_hi_byte) -
min(hi_byte, last_hi_byte);
1345 last_lo_byte = lo_byte;
1346 last_hi_byte = hi_byte;
1361 for (
i = 0;
i <
len;
i++)
1374 if (lead_byte < (
weight / 3))
1376 else if (lead_byte < ((
weight * 2) / 3))
1385 if (lo_byte_diff < 127 && !hi_byte_diff)
1390 if (hi_byte_diff && !lo_byte_diff)
1395 if ((
weight * lo_byte_diff) < hi_byte_diff)
1402 ((
weight * hi_byte_diff) < lo_byte_diff))
1410 for (
i = 0;
i <
len;
i++)
1412 if (!(
s[
i] & 0xff) || !(
s[
i] >> 8))
1422 for (
i = 0;
i <
len;
i++)
1434 for (
i = 0;
i <
len;
i++)
1436 if (
strchrW(byterev_control_chars,
s[
i]))
1508 else if (UniDest->Length > UniDest->MaximumLength)
1524 UniDest->Buffer =
NULL;
1611 const WCHAR *lpszCLSID =
str->Buffer;
1624 if (*lpszCLSID !=
'{')
1632 if (*lpszCLSID !=
'-')
1637 if (*lpszCLSID !=
'}')
1644 WCHAR ch = *lpszCLSID, ch2 = lpszCLSID[1];
1648 if (ch >=
'0' && ch <=
'9')
1650 else if (ch >=
'a' && ch <=
'f')
1652 else if (ch >=
'A' && ch <=
'F')
1657 if (ch2 >=
'0' && ch2 <=
'9')
1659 else if (ch2 >=
'a' && ch2 <=
'f')
1660 ch2 = ch2 -
'a' + 10;
1661 else if (ch2 >=
'A' && ch2 <=
'F')
1662 ch2 = ch2 -
'A' + 10;
1666 byte = ch << 4 | ch2;
1670#ifndef WORDS_BIGENDIAN
1761 (
ULONG)(((*c) >=
L'a' && (*c) <=
L'z') ?
1762 (*
c) -
L'a' +
L'A' : (*c)));
1792RtlUnicodeStringToCountedOemString(
1806 Length = RtlUnicodeStringToCountedOemSize(UniSource);
1828 else if (OemDest->Length > OemDest->MaximumLength)
1848 OemDest->Buffer =
NULL;
1891 *
Pos =
'A' + Digit - 10;
1928 UniDest->MaximumLength = UniSource->Length;
1932 else if (UniSource->Length > UniDest->MaximumLength)
1937 j = UniSource->Length /
sizeof(
WCHAR);
1939 for (
i = 0;
i <
j;
i++)
1944 UniDest->Length = UniSource->Length;
1978 else if (AnsiDest->Length >= AnsiDest->MaximumLength)
1992 AnsiDest->Buffer =
NULL;
2019 Length = RtlUnicodeStringToCountedOemSize(UniSource);
2036 else if (OemDest->Length > OemDest->MaximumLength)
2054 OemDest->Buffer =
NULL;
2090 else if (OemDest->Length >= OemDest->MaximumLength)
2108 OemDest->Buffer =
NULL;
2154 L"{%08lx-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}",
2217 while (!
ret &&
len--)
ret = *p1++ - *p2++;
2304 while (SourceLength)
2365 if (UniDest->Buffer ==
NULL)
return FALSE;
2416 UniDest->MaximumLength = UniSource->Length;
2420 else if (UniSource->Length > UniDest->MaximumLength)
2425 UniDest->Length = UniSource->Length;
2426 StopGap = UniSource->Length /
sizeof(
WCHAR);
2428 for (
i = 0 ;
i < StopGap;
i++)
2430 if (UniSource->Buffer[
i] <
L'A')
2432 UniDest->Buffer[
i] = UniSource->Buffer[
i];
2434 else if (UniSource->Buffer[
i] <=
L'Z')
2436 UniDest->Buffer[
i] = (UniSource->Buffer[
i] + (
L'a' -
L'A'));
2673 if (NewBuffer ==
NULL)
2689 Buffer->Buffer = NewBuffer;
2714 if (Char == OtherChar)
2737 DPRINT(
"RtlFindCharInUnicodeString(%u, '%wZ', '%wZ', %p)\n",
2758 if (
Found == WantToFind)
2770 if (
Found == WantToFind)
2795 ULONG ComputerNameLength;
2796 ULONG ComputerNameOemNLength;
2801 ComputerNameLength = DnsHostName->
Length;
2815 if (ComputerNameLength > 0)
2817 ComputerNameOemNLength = 0;
2821 &ComputerNameOemNLength,
2823 ComputerNameLength);
2836 ComputerNameOem.Buffer = ComputerNameOemN;
2837 ComputerNameOem.Length = (
USHORT)ComputerNameOemNLength;
2845 AllocateComputerNameString);
ACPI_SIZE strlen(const char *String)
static BOOL MatchString(LPCWCH pch1, INT cch1, LPCWCH pch2, INT cch2)
#define STATUS_NOT_IMPLEMENTED
#define NT_SUCCESS(StatCode)
#define RtlpAllocateStringMemory(Bytes, Tag)
static const unsigned char pc1[56]
static const unsigned char pc2[48]
_In_ uint64_t _In_ uint64_t _In_ uint64_t _In_opt_ traverse_ptr * tp
#define _IRQL_requires_max_(irql)
#define __drv_allocatesMem(kind)
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
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
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
#define RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING
#define RTL_DUPLICATE_UNICODE_STRING_NULL_TERMINATE
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define HASH_STRING_ALGORITHM_X65599
#define __analysis_assume(expr)
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
_In_ const STRING * String2
_Out_ _Inout_ POEM_STRING _In_ PCUNICODE_STRING SourceString
_In_ const STRING _In_ BOOLEAN CaseInSensitive
NTSYSAPI BOOLEAN NTAPI RtlIsTextUnicode(_In_ CONST VOID *Buffer, _In_ INT Size, _Inout_opt_ INT *Flags)
_In_ const STRING _In_ BOOLEAN CaseInsensitive
_In_ PSID _In_ BOOLEAN AllocateDestinationString
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
_Must_inspect_result_ NTSYSAPI LONG NTAPI RtlCompareUnicodeStrings(_In_reads_(String1Length) PCWCH String1, _In_ SIZE_T String1Length, _In_reads_(String2Length) PCWCH String2, _In_ SIZE_T String2Length, _In_ BOOLEAN CaseInSensitive)
_Out_ _Inout_ POEM_STRING DestinationString
#define RTL_SKIP_BUFFER_COPY
WCHAR NTAPI RtlpUpcaseUnicodeChar(_In_ WCHAR Source)
WCHAR NTAPI RtlpDowncaseUnicodeChar(_In_ WCHAR Source)
_Use_decl_annotations_ NTSTATUS NTAPI RtlUpcaseUnicodeToMultiByteN(_Out_ PCHAR MbString, _In_ ULONG MbSize, _Out_opt_ PULONG ResultSize, _In_ PCWCH UnicodeString, _In_ ULONG UnicodeSize)
_Use_decl_annotations_ NTSTATUS NTAPI RtlUnicodeToOemN(_Out_ PCHAR OemString, _In_ ULONG OemSize, _Out_opt_ PULONG ResultSize, _In_ PCWCH UnicodeString, _In_ ULONG UnicodeSize)
_Use_decl_annotations_ NTSTATUS NTAPI RtlUnicodeToMultiByteN(_Out_ PCHAR MbString, _In_ ULONG MbSize, _Out_opt_ PULONG ResultSize, _In_ PCWCH UnicodeString, _In_ ULONG UnicodeSize)
_Use_decl_annotations_ NTSTATUS NTAPI RtlUpcaseUnicodeToOemN(_Out_ PCHAR OemString, _In_ ULONG OemSize, _Out_opt_ PULONG ResultSize, _In_ PCWCH UnicodeString, _In_ ULONG UnicodeSize)
_Use_decl_annotations_ NTSTATUS NTAPI RtlUnicodeToMultiByteSize(_Out_ PULONG MbSize, _In_ PCWCH UnicodeString, _In_ ULONG UnicodeSize)
_Use_decl_annotations_ NTSTATUS NTAPI RtlMultiByteToUnicodeN(_Out_ PWCH UnicodeString, _In_ ULONG UnicodeSize, _Out_opt_ PULONG ResultSize, _In_ PCCH MbString, _In_ ULONG MbSize)
_Use_decl_annotations_ NTSTATUS NTAPI RtlOemToUnicodeN(_Out_ PWCHAR UnicodeString, _In_ ULONG UnicodeSize, _Out_opt_ PULONG ResultSize, _In_ PCCH OemString, _In_ ULONG OemSize)
CHAR NTAPI RtlUpperChar(_In_ CHAR Source)
_Use_decl_annotations_ NTSTATUS NTAPI RtlMultiByteToUnicodeSize(_Out_ PULONG UnicodeSize, _In_ PCCH MbString, _In_ ULONG MbSize)
#define _Must_inspect_result_
_In_ ULONG _In_ ULONG Offset
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define RTL_FIND_CHAR_IN_UNICODE_STRING_START_AT_END
#define RTL_FIND_CHAR_IN_UNICODE_STRING_COMPLEMENT_CHAR_SET
#define RTL_FIND_CHAR_IN_UNICODE_STRING_CASE_INSENSITIVE
#define STATUS_INVALID_PARAMETER_2
#define STATUS_INVALID_COMPUTER_NAME
#define STATUS_ACCESS_VIOLATION
#define STATUS_UNMAPPABLE_CHARACTER
#define STATUS_NAME_TOO_LONG
NTSTATUS NTAPI RtlpSafeCopyMemory(_Out_writes_bytes_all_(Length) VOID UNALIGNED *Destination, _In_reads_bytes_(Length) CONST VOID UNALIGNED *Source, _In_ SIZE_T Length)
#define RtlpFreeStringMemory
NTSTATUS NTAPI RtlDnsHostNameToComputerName(PUNICODE_STRING ComputerName, PUNICODE_STRING DnsHostName, BOOLEAN AllocateComputerNameString)
NTSTATUS NTAPI RtlUnicodeStringToOemString(IN OUT POEM_STRING OemDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
NTSTATUS NTAPI RtlCharToInteger(PCSZ str, ULONG base, PULONG value)
NTSTATUS NTAPI RtlpEnsureBufferSize(IN ULONG Flags, IN OUT PRTL_BUFFER Buffer, IN SIZE_T RequiredSize)
BOOLEAN NTAPI RtlpDidUnicodeToOemWork(IN PCUNICODE_STRING UnicodeString, IN POEM_STRING OemString)
BOOLEAN NTAPI RtlPrefixUnicodeString(PCUNICODE_STRING String1, PCUNICODE_STRING String2, BOOLEAN CaseInsensitive)
NTSTATUS NTAPI RtlInt64ToUnicodeString(IN ULONGLONG Value, IN ULONG Base OPTIONAL, IN OUT PUNICODE_STRING String)
VOID NTAPI RtlFreeOemString(IN POEM_STRING OemString)
NTSTATUS NTAPI RtlMultiAppendUnicodeStringBuffer(OUT PRTL_UNICODE_STRING_BUFFER StringBuffer, IN ULONG NumberOfAddends, IN PCUNICODE_STRING Addends)
NTSTATUS NTAPI RtlUpcaseUnicodeStringToAnsiString(IN OUT PANSI_STRING AnsiDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
NTSTATUS NTAPI RtlDuplicateUnicodeString(IN ULONG Flags, IN PCUNICODE_STRING SourceString, OUT PUNICODE_STRING DestinationString)
PWCHAR NlsOemToUnicodeTable
NTSTATUS NTAPI RtlAppendUnicodeToString(IN OUT PUNICODE_STRING Destination, IN PCWSTR Source)
PUSHORT NlsUnicodeToMbOemTable
NTSTATUS NTAPI RtlIntegerToUnicodeString(IN ULONG Value, IN ULONG Base OPTIONAL, IN OUT PUNICODE_STRING String)
BOOLEAN NTAPI RtlPrefixString(const STRING *String1, const STRING *String2, BOOLEAN CaseInsensitive)
BOOLEAN NTAPI RtlEqualString(IN const STRING *s1, IN const STRING *s2, IN BOOLEAN CaseInsensitive)
VOID NTAPI RtlFreeAnsiString(IN PANSI_STRING AnsiString)
BOOLEAN NTAPI RtlEqualDomainName(IN PUNICODE_STRING DomainName1, IN PUNICODE_STRING DomainName2)
NTSTATUS NTAPI RtlLargeIntegerToChar(IN PLARGE_INTEGER Value, IN ULONG Base, IN ULONG Length, IN OUT PCHAR String)
NTSTATUS NTAPI RtlDowncaseUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
ULONG NTAPI RtlxOemStringToUnicodeSize(IN PCOEM_STRING OemString)
NTSTATUS NTAPI RtlHashUnicodeString(IN CONST UNICODE_STRING *String, IN BOOLEAN CaseInSensitive, IN ULONG HashAlgorithm, OUT PULONG HashValue)
NTSTATUS NTAPI RtlUnicodeStringToInteger(const UNICODE_STRING *str, ULONG base, ULONG *value)
NTSTATUS NTAPI RtlAppendAsciizToString(IN OUT PSTRING Destination, IN PCSZ Source)
LONG NTAPI RtlCompareUnicodeString(IN PCUNICODE_STRING s1, IN PCUNICODE_STRING s2, IN BOOLEAN CaseInsensitive)
NTSTATUS NTAPI RtlUpcaseUnicodeStringToCountedOemString(IN OUT POEM_STRING OemDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
BOOLEAN NTAPI RtlEqualUnicodeString(IN CONST UNICODE_STRING *s1, IN CONST UNICODE_STRING *s2, IN BOOLEAN CaseInsensitive)
NTSTATUS NTAPI RtlIntegerToUnicode(IN ULONG Value, IN ULONG Base OPTIONAL, IN ULONG Length OPTIONAL, IN OUT LPWSTR String)
PUSHORT NlsOemLeadByteInfo
ULONG NTAPI RtlxUnicodeStringToAnsiSize(IN PCUNICODE_STRING UnicodeString)
USHORT NlsUnicodeDefaultChar
VOID NTAPI RtlFreeUnicodeString(IN PUNICODE_STRING UnicodeString)
ULONG NTAPI RtlxAnsiStringToUnicodeSize(IN PCANSI_STRING AnsiString)
BOOLEAN NTAPI RtlEqualComputerName(IN PUNICODE_STRING ComputerName1, IN PUNICODE_STRING ComputerName2)
BOOLEAN NlsMbOemCodePageTag
NTSTATUS NTAPI RtlValidateUnicodeString(_In_ ULONG Flags, _In_ PCUNICODE_STRING String)
NTSTATUS NTAPI RtlUpcaseUnicodeStringToOemString(IN OUT POEM_STRING OemDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
NTSTATUS NTAPI RtlUnicodeStringToAnsiString(IN OUT PANSI_STRING AnsiDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
VOID NTAPI RtlUpperString(PSTRING DestinationString, const STRING *SourceString)
VOID NTAPI RtlCopyUnicodeString(IN OUT PUNICODE_STRING DestinationString, IN PCUNICODE_STRING SourceString)
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)
WCHAR NTAPI RtlAnsiCharToUnicodeChar(IN OUT PUCHAR *AnsiChar)
static BOOLEAN RtlpIsCharInUnicodeString(IN WCHAR Char, IN PCUNICODE_STRING MatchString, IN BOOLEAN CaseInSensitive)
NTSTATUS NTAPI RtlOemStringToCountedUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PCOEM_STRING OemSource, IN BOOLEAN AllocateDestinationString)
NTSTATUS NTAPI RtlIntegerToChar(ULONG value, ULONG base, ULONG length, PCHAR str)
NTSTATUS NTAPI RtlGUIDFromString(IN UNICODE_STRING *str, OUT GUID *guid)
BOOLEAN NTAPI RtlIsValidOemCharacter(IN PWCHAR Char)
VOID NTAPI RtlInitString(IN OUT PSTRING DestinationString, IN PCSZ SourceString)
ULONG NTAPI RtlxUnicodeStringToOemSize(IN PCUNICODE_STRING UnicodeString)
VOID NTAPI RtlInitUnicodeString(IN OUT PUNICODE_STRING DestinationString, IN PCWSTR SourceString)
VOID NTAPI RtlEraseUnicodeString(IN PUNICODE_STRING String)
BOOLEAN NTAPI RtlCreateUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PCWSTR Source)
NTSTATUS NTAPI RtlUpcaseUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PCUNICODE_STRING UniSource, IN BOOLEAN AllocateDestinationString)
NTSTATUS NTAPI RtlStringFromGUID(IN REFGUID Guid, OUT PUNICODE_STRING GuidString)
NTSTATUS NTAPI RtlInitUnicodeStringEx(OUT PUNICODE_STRING DestinationString, IN PCWSTR SourceString)
NTSTATUS NTAPI RtlAppendStringToString(IN PSTRING Destination, IN const STRING *Source)
PCHAR NlsUnicodeToOemTable
VOID NTAPI RtlInitAnsiString(IN OUT PANSI_STRING DestinationString, IN PCSZ SourceString)
VOID NTAPI RtlCopyString(IN OUT PSTRING DestinationString, IN const STRING *SourceString OPTIONAL)
NTSTATUS NTAPI RtlAnsiStringToUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PANSI_STRING AnsiSource, IN BOOLEAN AllocateDestinationString)
NTSTATUS NTAPI RtlOemStringToUnicodeString(IN OUT PUNICODE_STRING UniDest, IN PCOEM_STRING OemSource, IN BOOLEAN AllocateDestinationString)
BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(OUT PUNICODE_STRING Destination, IN PCSZ Source)
LONG NTAPI RtlCompareString(IN const STRING *s1, IN const STRING *s2, IN BOOLEAN CaseInsensitive)
NTSTATUS NTAPI RtlAppendUnicodeStringToString(IN OUT PUNICODE_STRING Destination, IN PCUNICODE_STRING Source)
#define STATUS_BUFFER_TOO_SMALL
#define STATUS_BUFFER_OVERFLOW
PULONG MinorVersion OPTIONAL
unsigned short MaximumLength
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define RtlMoveMemory(Destination, Source, Length)
#define STATUS_INVALID_PARAMETER
CONST STRING * PCOEM_STRING
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
#define MAX_COMPUTERNAME_LENGTH
#define IS_TEXT_UNICODE_ILLEGAL_CHARS
#define IS_TEXT_UNICODE_UNICODE_MASK
#define IS_TEXT_UNICODE_REVERSE_ASCII16
#define IS_TEXT_UNICODE_NOT_ASCII_MASK
#define IS_TEXT_UNICODE_NULL_BYTES
#define IS_TEXT_UNICODE_REVERSE_CONTROLS
#define IS_TEXT_UNICODE_REVERSE_MASK
#define IS_TEXT_UNICODE_DBCS_LEADBYTE
#define IS_TEXT_UNICODE_CONTROLS
#define IS_TEXT_UNICODE_ODD_LENGTH
#define IS_TEXT_UNICODE_REVERSE_SIGNATURE
#define IS_TEXT_UNICODE_NOT_UNICODE_MASK
#define IS_TEXT_UNICODE_STATISTICS
#define IS_TEXT_UNICODE_ASCII16
#define IS_TEXT_UNICODE_SIGNATURE
#define IS_TEXT_UNICODE_REVERSE_STATISTICS
_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
_Must_inspect_result_ _In_ ULONG Flags
#define RtlOemStringToUnicodeSize(STRING)
_In_ SIZE_T _In_ SIZE_T String2Length
_In_ BOOLEAN _In_ ULONG HashAlgorithm
#define RtlUnicodeStringToOemSize(STRING)
*BytesInOemString PCHAR OemString
_In_ SIZE_T String1Length
#define RtlUnicodeStringToAnsiSize(String)
_In_ BOOLEAN _In_ ULONG _Out_ PULONG HashValue
#define RtlOemStringToCountedUnicodeSize(STRING)
#define HASH_STRING_ALGORITHM_DEFAULT