VfCancelAdapterChannel

UINT8 __fastcall VfCancelAdapterChannel(
        _DMA_ADAPTER *DmaAdapter,
        _DEVICE_OBJECT *DeviceObject,
        VOID *DmaTransferContext){
  __int64(__fastcall *v6)(_DMA_ADAPTER *, _DEVICE_OBJECT *, VOID *); 
  INT64 v7; 
  __int64(__fastcall *v8)(_DMA_ADAPTER *, _DEVICE_OBJECT *, VOID *); 
  LIST_ENTRY *AdapterInformationInternal; 
  UINT8 v10; 
  UINT8 v11; 
  INT64 v12; 
  struct _SLIST_ENTRY *v13; 
  LODWORD(v6) = ViGetRealDmaOperation(DmaAdapter, 0xB0ui64);
  LOBYTE(v7) = 1;
  v8 = v6;
  AdapterInformationInternal = ViGetAdapterInformationInternal(DmaAdapter, v7);
  v10 = v8(DmaAdapter, DeviceObject, DmaTransferContext);
  v11 = v10;
  if( AdapterInformationInternal )
  {
    if( v10 )
    {
      v12 = ViRemoveChannelWcb((INT64)AdapterInformationInternal, 0i64, (INT64)DmaTransferContext);
      if( v12 )
      {
        DECREMENT_ADAPTER_CHANNELS((__int64)AdapterInformationInternal);
        SUBTRACT_MAP_REGISTERS((INT64)AdapterInformationInternal, *(unsigned int *)(v12 + 48));
        v13 = *(struct _SLIST_ENTRY **)(v12 + 96);
        if( v13 )
          ViFreeMapRegisterFile((__int64)AdapterInformationInternal, v13);
        ExFreeToNPagedLookasideList((NPAGED_LOOKASIDE_LIST *)ViHalWaitBlockLookaside, (PVOID)v12);
      }
    }
  }
  return v11;
}

Referenced by:

No references.