KeStartProfile
VOID __fastcall KeStartProfile(_KPROFILE *Profile){
int v1;
UINT64 v2;
VOID **PoolWithTag;
ULONG_PTR Context[2];
int v5;
int v6;
int v7;
_DWORD v8[45];
v6 = KeNumberProcessors_0;
v5 = KeNumberProcessors_0;
v7 = 1310721;
*(_QWORD *)Context = Profile;
memset(v8, 0, sizeof(v8));
KeQueryMaximumProcessorCountEx(0xFFFFu);
v2 = (unsigned int)(4 * v1 + 196);
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, v2, 1718579792i64);
*(_QWORD *)&v8[41] = PoolWithTag;
if( PoolWithTag )
{
memset(PoolWithTag, 0i64, v2);
if( (unsigned int)KeNumberProcessors_0 <= 1 )
KiStartProfileTarget((UINT64)Context);
else
KeIpiGenericCall((PKIPI_BROADCAST_WORKER)KiStartProfileTarget, (ULONG_PTR)Context);
if( *(_QWORD *)&v8[41] )
ExFreePoolWithTag(*(PVOID *)&v8[41], 0x666F7250u);
}
}Referenced by:
EtwpCoverageSamplerStart
NtStartProfile