IoCallDriverWithTracing

VOID __fastcall IoCallDriverWithTracing(_DEVICE_OBJECT *DeviceObject, _IRP *Irp){
  char *IrpExtension; 
  _ETHREAD *CurrentThread; 
  _LIST_ENTRY *ActivityId; 
  __int128 v5; 

  if( (Irp->AllocationFlags & 0x80u) == 0
    && (IrpExtension = (char *)Irp->Tail.IrpExtension) != 0i64
    && (*IrpExtension & 2) != 0 )
  {
    v5 = *(_OWORD *)(IrpExtension + 24);
    CurrentThread = (_ETHREAD *)KeGetCurrentThread();
    ActivityId = (_LIST_ENTRY *)CurrentThread->ActivityId;
    CurrentThread->ActivityId = (const _GUID *)&v5;
    IofCallDriver((UINT64)DeviceObject, (UINT64)Irp);
    KeGetCurrentThread()[1].WaitBlock[1].WaitListEntry.Flink = ActivityId;
  }
  else
  {
    IofCallDriver((UINT64)DeviceObject, (UINT64)Irp);
  }
}

Referenced by:

IopParseDevice