IopAddBugcheckTriageUnicodeString
INT64 __stdcall IopAddBugcheckTriageUnicodeString(UNICODE_STRING *TriageString){
__int64 MaximumLength;
unsigned int v2;
wchar_t *Buffer;
unsigned __int64 v5;
MaximumLength = TriageString->MaximumLength;
v2 = 0;
if( (_WORD)MaximumLength )
{
Buffer = TriageString->Buffer;
if( (unsigned __int16)MaximumLength > 0x100u )
{
if( KiIsAddressRangeValid((INT64)Buffer, 256i64) )
{
IoAddTriageDumpDataBlock(TriageString->Buffer, 0x100ui64);
return(unsigned int)-2147483643;
}
}
else
{
v5 = (unsigned __int64)(MaximumLength + 7) >> 3;
if( KiIsAddressRangeValid((INT64)Buffer, 8 * v5) )
IoAddTriageDumpDataBlock(TriageString->Buffer, (unsigned int)(8 * v5));
else
return(unsigned int)-1073741823;
}
}
return v2;
}Referenced by:
IopAddBugcheckTriageDevice
IopAddBugcheckTriageDeviceNode