PopDirectedDripsStartDisengageTimer
NTSTATUS __stdcall PopDirectedDripsStartDisengageTimer(INT64 a1){
UINT64 *v1;
unsigned __int64 v2;
NTSTATUS result;
_EXT_SET_PARAMETERS_V0 Parameters;
v1 = (UINT64 *)((char *)&stru_140C23628 + 160 * (int)a1 + 5256);
*(_QWORD *)&Parameters.Version = 0i64;
v2 = (unsigned __int8)KeAcquireSpinLockRaiseToDpc(v1 + 1);
Parameters.NoWakeTolerance = -1i64;
if( !KeCancelTimer2((INT64)(v1 + 3)) && ++*((_DWORD *)v1 + 5) == 1 )
PopDirectedDripsSetDisengageReason(*(_DWORD *)v1);
KeSetTimer2((INT64)(v1 + 3), -10000000i64 * *((unsigned int *)v1 + 1), 0i64, (INT64)&Parameters);
++*((_DWORD *)v1 + 4);
KxReleaseSpinLock(v1 + 1);
result = KiIrqlFlags;
__writecr8(v2);
return result;
}Referenced by:
PoFxNotifySurprisePowerOn
PopRequestCompletion