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