EtwpCoverageProvEnableCallback
VOID __stdcall EtwpCoverageProvEnableCallback(){
unsigned __int8 v0;
_ETHREAD *CurrentThread;
int v2[6];
if( *(&stru_140C00F40 + 1834) && tlgKeywordOn((__int64)&stru_140C00F40 + 7336, 1i64) )
{
v0 = 1;
if( !*(&stru_140CF2E80 + 1828) && dword_140C0EF54 < KUSER_SHARED_DATA.TelemetryCoverageRound )
{
if( !dword_140C0EF50 )
dword_140C0EF50 = TelemetryCoverageStringHashInternal((_BYTE *)off_140C0EF48, v2);
EtwTelemetryCoverageReport((INT64)&off_140C0EF48);
}
}
else
{
v0 = 0;
}
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
ExAcquirePushLockExclusiveEx((_EX_PUSH_LOCK *)&ExBootDevicesRemovedEvent + 166, 0i64);
qword_140C50300 = (__int64)KeGetCurrentThread();
if( EtwpCoverageContext && *(&stru_140CF2E80 + 1828) != v0 )
{
if( v0 )
{
KUSER_SHARED_DATA.TelemetryCoverageRound = -256;
*(_WORD *)(*(_QWORD *)(EtwpCoverageContext + 16) + 2i64) |= 1u;
}
else
{
KUSER_SHARED_DATA.TelemetryCoverageRound = *(_DWORD *)(*(_QWORD *)(EtwpCoverageContext + 16) + 24i64);
*(_WORD *)(*(_QWORD *)(EtwpCoverageContext + 16) + 2i64) &= ~1u;
}
}
qword_140C50300 = 0i64;
*(&stru_140CF2E80 + 1828) = v0;
if( (_InterlockedExchangeAdd64((_QWORD *)&ExBootDevicesRemovedEvent + 166, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
ExfTryToWakePushLock((_EX_PUSH_LOCK *)&ExBootDevicesRemovedEvent + 166);
KeAbPostRelease((char *)&ExBootDevicesRemovedEvent + 1328);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
}Referenced by:
No references.