KeStartProfile
char __fastcall KeStartProfile(ULONG_PTR a1){
int MaximumProcessorCount;
void *PoolWithTag;
ULONG_PTR Context;
int v6;
int v7;
int v8;
INT64 result[20];
PVOID P;
char v11;
memset((INT64)result + 4, 0i64);
v7 = KeNumberProcessors_0;
v6 = KeNumberProcessors_0;
v8 = 1310721;
Context = a1;
memset((INT64)result, 0i64);
MaximumProcessorCount = KeQueryMaximumProcessorCountEx(0xFFFFu);
PoolWithTag = ExAllocatePoolWithTag(NonPagedPoolNx, (unsigned int)(4 * MaximumProcessorCount + 196), 0x666F7250ui64);
P = PoolWithTag;
if( !PoolWithTag )
return 1;
memset((INT64)PoolWithTag, 0i64);
if( (unsigned int)KeNumberProcessors_0 <= 1 )
KiStartProfileTarget((UINT64)&Context);
else
KeIpiGenericCall((PKIPI_BROADCAST_WORKER)KiStartProfileTarget, &Context);
if( P )
ExFreePoolWithTag(P, 0x666F7250u);
return v11;
}Referenced by:
EtwpCoverageSamplerStart
EtwpEnableKernelTrace
KiInitializeCacheErrataSupport
NtStartProfile