IoCancelIrp

VOID __stdcall IoCancelIrp(_KDPC *Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2){
  UINT8 v5; 
  _DEVICE_OBJECT *v6; 
  void *v7; 
  UINT8 v8; 
  bool v9; 
  _IRP *v10; 

  if( ViVerifierEnabled
    && ((*(&stru_140CF2E80 + 1826) & 0xFFAFFFFF) != 0
     || (*(&stru_140CF2E80 + 7308) & 2) != 0
     || (*(&stru_140CF2E80 + 7308) & 4) != 0) )
  {
    IovCancelIrp((_IRP *)Dpc);
  }
  v5 = KeAcquireQueuedSpinLock(7i64, (INT64)DeferredContext, (INT64)SystemArgument1);
  *((_BYTE *)&Dpc[1].0 + 4) = 1;
  v7 = (void *)_InterlockedExchange64((volatile __int64 *)&Dpc[1].SystemArgument1, 0i64);
  v8 = v5;
  if( v7 )
  {
    if( SHIBYTE(Dpc[1].Number) > (char)(LOBYTE(Dpc[1].Number) + 1) )
      KeBugCheckEx(0x48u, Dpc, v7, 0i64, 0i64);
    v9 = ViVerifierEnabled == 0;
    *((_BYTE *)&Dpc[1].0 + 5) = v5;
    if( !v9
      && ((*(&stru_140CF2E80 + 1826) & 0xFFAFFFFF) != 0
       || (*(&stru_140CF2E80 + 7308) & 2) != 0
       || (*(&stru_140CF2E80 + 7308) & 4) != 0) )
    {
      IovpCancelRoutine(*((_DEVICE_OBJECT **)Dpc[2].DpcData + 5), (_IRP *)Dpc, v7, v6, v10);
    }
    else
    {
      ((void(__fastcall *)(_QWORD, _KDPC *))v7)(*((_QWORD *)Dpc[2].DpcData + 5), Dpc);
    }
    if( KeGetCurrentIrql() == 2 && v8 != 2 )
      KeBugCheckEx(0x11Bu, Dpc, v7, 0i64, 0i64);
  }
  else
  {
    KeReleaseQueuedSpinLock(LockQueueIoCancelLock, v5);
  }
}

Referenced by:

FsRtlKernelFsControlFile
FsRtlQueryInformationFile
FsRtlQueryKernelEaFile
FsRtlSetKernelEaFile
FsRtlpWaitOnIrp
IoCancelThreadIo
IopCancelAlertedRequest
IopCancelIrpsInCurrentThreadList
IopCancelIrpsInFileObjectList
IopCancelPendingEject
NtCancelIoFile
PopBatteryRemove
PopBatteryWorker
PopFanRemove
PopThermalPollingPowerSettingCallback
PopThermalReadCounters
PopThermalZoneDpc
PopThermalZoneRemove
PopThermalZoneTimerCallback
PopThermalZoneUpdateCoolingPolicy