RtlUnicodeStringValidateSrcWorker
NTSTATUS __stdcall RtlUnicodeStringValidateSrcWorker(
PCUNICODE_STRING SourceString,
WCHAR **ppszSrc,
size_t *pcchSrcLength,
size_t cchMax,
ULONG dwFlags){
unsigned __int64 Length;
NTSTATUS v6;
unsigned __int16 MaximumLength;
wchar_t *Buffer;
Length = SourceString->Length;
v6 = 0;
*ppszSrc = 0i64;
*(_QWORD *)pcchSrcLength = 0i64;
if( (Length & 1) != 0 )
return -1073741811;
MaximumLength = SourceString->MaximumLength;
if( (MaximumLength & 1) != 0 )
return -1073741811;
if( (unsigned __int16)Length > MaximumLength )
return -1073741811;
if( MaximumLength == 0xFFFF )
return -1073741811;
Buffer = SourceString->Buffer;
if( !Buffer && ((_WORD)Length || MaximumLength) )
return -1073741811;
*ppszSrc = Buffer;
*(_QWORD *)pcchSrcLength = Length >> 1;
return v6;
}Referenced by:
RtlStringCbCopyUnicodeString