EtwpCovSampCaptureFlushSampleBuffers
VOID __fastcall EtwpCovSampCaptureFlushSampleBuffers(INT64 a1){
unsigned int MaximumProcessorCount;
__int64 v3;
__int64 v4;
INT64 v5;
unsigned int v6;
unsigned int v7;
UINT64 *v8;
INT64 v9;
MaximumProcessorCount = KeQueryMaximumProcessorCountEx(0xFFFFu);
if( MaximumProcessorCount )
{
v3 = 0i64;
v4 = MaximumProcessorCount;
do
{
v5 = 0i64;
v6 = ((unsigned int)*(_QWORD *)(a1 + 8) >> 13) & 0x3FFFF;
_BitScanReverse(&v7, v6);
v8 = (UINT64 *)(*(_QWORD *)(*(_QWORD *)(*(_QWORD *)(v3 + ExSaPageArrays) + 8i64 * (v7 - 2))
+ 8i64 * (v6 ^ (1 << v7))
+ 8)
+ 8 * ((*(_QWORD *)(a1 + 8) >> 4) & 0x1FFi64));
if( EtwpCovSampTryAcquireBufferLock(v8) )
{
v9 = v8[1];
if( v9 )
{
v8[1] = 0i64;
v5 = v9;
}
KxReleaseSpinLock(v8);
__writecr8(0i64);
if( v5 )
EtwpCovSampSampleBufferDecRef(a1, v5);
}
v3 += 8i64;
--v4;
}
while( v4 );
}
}Referenced by:
EtwpCovSampCaptureContextStop
EtwpCovSampCaptureFlush