KeDisableProfiling
NTSTATUS __stdcall KeDisableProfiling(_ETHREAD *Thread, _THREAD_PERFORMANCE_DATA *UserData){
NTSTATUS result;
__int64 v4;
void *v5;
result = -1073741054;
v4 = *((_QWORD *)Thread + 45);
if( v4 )
{
if( *(_THREAD_PERFORMANCE_DATA **)(v4 + 8) == UserData )
{
_interlockedbittestandreset((volatile signed __int32 *)Thread, 0x11u);
_interlockedbittestandreset((volatile signed __int32 *)Thread, 0x10u);
v5 = (void *)*((_QWORD *)Thread + 45);
*((_QWORD *)Thread + 45) = 0i64;
ExFreePoolWithTag(v5, 0);
return 0;
}
else
{
return -1073741811;
}
}
return result;
}Referenced by:
KeTerminateThread
NtSetInformationThread