PopDirectedDripsDiagTraceBroadcastFailureDevice
VOID __fastcall PopDirectedDripsDiagTraceBroadcastFailureDevice(INT64 a1){
INT64 v2;
PVOID *i;
ExAcquirePushLockExclusiveEx((UINT64)&PopDirectedDripsDiagLock, 0i64);
v2 = *(_QWORD *)(a1 + 776);
if( v2 )
*(_DWORD *)(v2 + 152) |= 0x20u;
for( i = (PVOID *)PopDirectedDripsDiagSessionContext; i != &PopDirectedDripsDiagSessionContext; i = (PVOID *)*i )
{
if( *((_DWORD *)i + 9) == dword_140C1EB88 )
{
++*((_DWORD *)i + 53);
if( v2 )
PopDirectedDripsDiagInsertErrorRecord((INT64)i, v2, 5i64);
}
}
if( (_InterlockedExchangeAdd64((volatile signed __int64 *)&PopDirectedDripsDiagLock, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
ExfTryToWakePushLock((volatile INT64 *)&PopDirectedDripsDiagLock);
KeAbPostRelease(&PopDirectedDripsDiagLock);
}Referenced by:
PopDirectedDripsNotifyTransitionFailed