RtlUpcaseUnicodeString
NTSTATUS __stdcall RtlUpcaseUnicodeString(
_UNICODE_STRING *DestinationString,
_UNICODE_STRING *SourceString,
UINT8 AllocateDestinationString){
UINT64 Length;
__int64 i;
unsigned __int64 v7;
wchar_t *StringRoutine;
Length = SourceString->Length;
if( AllocateDestinationString )
{
DestinationString->MaximumLength = Length;
StringRoutine = (wchar_t *)ExpAllocateStringRoutine(Length);
DestinationString->Buffer = StringRoutine;
if( !StringRoutine )
return -1073741801;
LOWORD(Length) = SourceString->Length;
}
else if( (unsigned __int16)Length > DestinationString->MaximumLength )
{
return -2147483643;
}
for( i = 0i64; (unsigned int)i < (unsigned __int16)Length >> 1; i = (unsigned int)(i + 1) )
{
v7 = SourceString->Buffer[i];
if( (unsigned int)v7 >= 0x61 )
{
if( (unsigned int)v7 > 0x7A )
{
if( Nls844UnicodeUpcaseTable )
{
if( (unsigned __int16)v7 >= 0xC0u )
LOWORD(v7) = *(_WORD *)(Nls844UnicodeUpcaseTable
+ 2
* ((v7 & 0xF)
+ *(unsigned __int16 *)(Nls844UnicodeUpcaseTable
+ 2i64
* (((unsigned __int8)v7 >> 4)
+ (unsigned int)*(unsigned __int16 *)(Nls844UnicodeUpcaseTable
+ 2 * (v7 >> 8))))))
+ v7;
}
}
else
{
LOWORD(v7) = v7 - 32;
}
}
DestinationString->Buffer[i] = v7;
}
DestinationString->Length = SourceString->Length;
return 0;
}Referenced by:
AslStringUpcaseToMultiByteN
IoReportDetectedDevice
PfCalculateProcessHash
PfSnLogStreamCreate
PfSnLogVolumeCreate
PiCMGenerateDeviceInstance
PiCMOpenClassKey
PiDevCfgResolveVariableGenerateGuid
PipInitComputerIds
PipMakeGloballyUniqueId
RtlDeriveCapabilitySidsFromName
SdbMakeIndexKeyFromStringEx
ViCreateProcessCallbackInternal
ViFaultsAddAppNoDuplicates