KiValidateComponentName
NTSTATUS __stdcall KiValidateComponentName(STRSAFE_PCNZCH psz){
_DWORD *v1;
_DWORD *v2;
NTSTATUS result;
unsigned __int64 v5;
unsigned int v6;
__int64 v7;
INT64 v8;
v2 = v1;
result = MmIsAddressValidEx((INT64)psz);
if( !(_BYTE)result )
goto LABEL_12;
v5 = (unsigned __int64)psz & 0xFFFFFFFFFFFFF000ui64;
v6 = 257;
if( (unsigned __int64)&psz[-((unsigned __int64)psz & 0xFFFFFFFFFFFFF000ui64)] > 0xEFF )
{
v7 = -1i64;
if( v5 + 4096 >= v5 )
v7 = v5 + 4096;
v8 = 0i64;
if( v5 + 4096 >= v5 )
v8 = v7;
if( !v8 || !MmIsAddressValidEx(v8) )
v6 = v5 - (_DWORD)psz + 4096;
}
result = RtlStringCbLengthA((PSTR)psz, (UINT64 *)v6);
if( result >= 0 )
{
result = 1;
*v2 = 0;
}
else
{
LABEL_12:
LOBYTE(result) = 0;
}
return result;
}Referenced by:
IopLiveDumpAddTriageDumpData
KiInvokeBugCheckAddTriageDumpDataCallbacks