IoFreeMapRegistersV3

VOID __fastcall IoFreeMapRegistersV3(
        _ADAPTER_OBJECT *ChildAdapterObject,
        _HALP_DMA_TRANSLATION_ENTRY *Translation,
        UINT64 a3){
  _HALP_DMA_MASTER_ADAPTER_OBJECT *MasterAdapter; 
  char v5; 
  unsigned __int8 CurrentIrql; 

  MasterAdapter = ChildAdapterObject->MasterAdapter;
  if( MasterAdapter && Translation )
  {
    v5 = 0;
    CurrentIrql = 0;
    if( KeGetCurrentIrql() < 2u )
    {
      CurrentIrql = KeGetCurrentIrql();
      __writecr8(2ui64);
      v5 = 1;
    }
    if( (_DWORD)a3 )
      HalpDmaFreeMapRegisters(ChildAdapterObject, Translation, (unsigned int)a3);
    LOBYTE(Translation) = ChildAdapterObject->ScatterGather;
    HalpDmaProcessMapRegisterQueueV3(MasterAdapter, (INT64)Translation);
    if( v5 )
      __writecr8(CurrentIrql);
  }
}

Referenced by:

IoFreeMapRegisters