PspCaptureAndValidateUnicodeString
NTSTATUS __stdcall PspCaptureAndValidateUnicodeString(_UNICODE_STRING *SourceString, _UNICODE_STRING *DestString){
__int64 Length;
wchar_t *Buffer;
unsigned __int64 v4;
*DestString = *SourceString;
Length = DestString->Length;
if( (Length & 1) != 0 )
return -1073741811;
Buffer = DestString->Buffer;
if( Buffer )
{
DestString->MaximumLength = Length + 2;
if( (unsigned __int16)(Length + 2) >= (unsigned __int16)Length )
goto LABEL_4;
return -1073741811;
}
if( (_WORD)Length )
return -1073741811;
DestString->MaximumLength = 0;
LABEL_4:
if( (_WORD)Length )
{
v4 = (unsigned __int64)Buffer + Length;
if( v4 > 0x7FFFFFFF0000i64 || v4 < (unsigned __int64)Buffer )
MEMORY[0x7FFFFFFF0000] = 0;
}
return 0;
}Referenced by:
PspCaptureUserProcessParameters