PiDrvDbUnloadNode
INT64 __fastcall PiDrvDbUnloadNode(INT64 a1, _QWORD *a2){
_ETHREAD *CurrentThread;
__int64 v5;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
ExAcquireResourceExclusiveLite((ERESOURCE *)(a1 + 88), 1u);
if( *(_QWORD *)(a1 + 72) )
{
v5 = *(_QWORD *)(a1 + 480);
if( v5 )
{
if( v5 < 0 )
KeSetCoalescableTimer((PKTIMER)(a1 + 264), *(LARGE_INTEGER *)(a1 + 480), 0, 0x3A98u, (PKDPC)(a1 + 328));
}
else
{
KiSetTimerEx((_KTIMER *)(a1 + 264), 0i64, 0i64, 0, (_KDPC *)(a1 + 328));
}
*(_BYTE *)(a1 + 488) = 1;
}
*a2 = 0i64;
ExReleaseResourceLite((PERESOURCE)(a1 + 88));
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
return 0i64;
}Referenced by:
PiDrvDbNodeActionCallback