EtwpUpdateLastBranchTracingConfiguration
NTSTATUS __stdcall EtwpUpdateLastBranchTracingConfiguration(INT64 a1, INT64 a2){
int LbrData;
unsigned int v4;
if( !EtwpLastBranchSupportedOptions )
return -1073741637;
v4 = *(_DWORD *)(a2 + 16);
if( (~EtwpLastBranchSupportedOptions & v4) != 0 || (v4 & 3) == 3 )
return -1073741811;
if( (*(_DWORD *)(a1 + 832) & 0x8000) != 0 )
return -1073741053;
if( *(_QWORD *)(a1 + 1008) || (LbrData = EtwpAllocateLbrData(a1), LbrData >= 0) )
{
if( **(_DWORD **)(a1 + 1008) )
{
return -1073741053;
}
else
{
LbrData = ((__int64(__fastcall *)(_QWORD))off_140C009B0[0])(v4);
if( LbrData >= 0 )
{
EtwpReferenceLastBranchLookasideList();
*(_DWORD *)(*(_QWORD *)(a1 + 1008) + 4i64) = v4;
_InterlockedOr((volatile signed __int32 *)(a1 + 832), 0x8000u);
}
}
}
return LbrData;
}Referenced by:
EtwSetPerformanceTraceInformation