WdipSemMarkNextTimedOutInstanceForDeletion
INT64 *__fastcall WdipSemMarkNextTimedOutInstanceForDeletion(INT64 **a1){
_ETHREAD *CurrentThread;
INT64 *v2;
INT64 *v4;
INT64 *v6;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v2 = 0i64;
--*((_WORD *)CurrentThread + 242);
ExAcquirePushLockExclusiveEx((UINT64)&qword_140C1A3B8, 0i64);
if( a1 )
{
v4 = *a1;
while( v4 != (INT64 *)&WdipSemEnabledInstanceTable )
{
v6 = v4;
v4 = (INT64 *)*v4;
if( ++*((_DWORD *)v6 + 10) >= 0xAu && *(_BYTE *)(v6[4] + 1176) && !*((_DWORD *)v6 + 11) )
{
*((_DWORD *)v6 + 11) = 1;
v2 = v6;
break;
}
}
}
ExReleasePushLockEx((UINT64)&qword_140C1A3B8, 0i64);
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
return v2;
}Referenced by:
WdipTimeoutCheckRoutine