ViWdBeforeCancelIrp
VOID __stdcall ViWdBeforeCancelIrp(_VF_WATCHDOG_IRP *WdIrp){
unsigned __int16 v1;
unsigned int v3;
_LIST_ENTRY *Flink;
_LIST_ENTRY *Blink;
v1 = VfWdCancelTimeoutTicks;
if( VfWdCancelTimeoutTicks )
{
++ViWdCancelIrpCount;
v3 = VfWdCancelTimeoutTicks + ViWdTickCount;
KxAcquireSpinLock(&VfWdIrpListLock);
if( WdIrp->Inserted )
{
if( WdIrp->DueTickCount <= v3 )
{
LABEL_8:
KxReleaseSpinLock(&VfWdIrpListLock);
return;
}
Flink = WdIrp->ListEntry.Flink;
if( (_VF_WATCHDOG_IRP *)WdIrp->ListEntry.Flink->Blink != WdIrp
|| (Blink = WdIrp->ListEntry.Blink, (_VF_WATCHDOG_IRP *)Blink->Flink != WdIrp) )
{
__fastfail(3u);
}
Blink->Flink = Flink;
Flink->Blink = Blink;
--ViWdIrpListLength;
}
WdIrp->DueTickCount = v3;
WdIrp->CancelTimeoutTicks = v1;
ViWdInsertSortIrp(WdIrp);
goto LABEL_8;
}
}Referenced by:
IovCancelIrp