IoForwardIrpSynchronously

VOID __fastcall IoForwardIrpSynchronously(_DEVICE_OBJECT *DeviceObject, _IRP *Irp){
  _IO_STACK_LOCATION *CurrentStackLocation; 

  if( Irp->CurrentLocation != 1 )
  {
    CurrentStackLocation = Irp->Tail.CurrentStackLocation;
    *(_OWORD *)&CurrentStackLocation[-1].MajorFunction = *(_OWORD *)&CurrentStackLocation->MajorFunction;
    *(_OWORD *)&CurrentStackLocation[-1].Parameters.Options = *(_OWORD *)&CurrentStackLocation->Parameters.Options;
    *(_OWORD *)&CurrentStackLocation[-1].Parameters.EaLength = *(_OWORD *)&CurrentStackLocation->Parameters.EaLength;
    CurrentStackLocation[-1].FileObject = CurrentStackLocation->FileObject;
    CurrentStackLocation[-1].Control = 0;
    IoSynchronousCallDriver(DeviceObject, Irp);
  }
}

Referenced by:

No references.