IopfCallDriver

VOID __fastcall IopfCallDriver(_DEVICE_OBJECT *DeviceObject, _IRP *Irp){
  _IO_STACK_LOCATION *v2; 
  __int64 MajorFunction; 

  if( --Irp->CurrentLocation <= 0 )
    KeBugCheckEx(0x35u, Irp, 0i64, 0i64, 0i64);
  v2 = Irp->Tail.CurrentStackLocation - 1;
  Irp->Tail.CurrentStackLocation = v2;
  MajorFunction = v2->MajorFunction;
  v2->DeviceObject = DeviceObject;
  if( (_BYTE)MajorFunction == 22 && (unsigned __int8)(v2->MinorFunction - 2) <= 1u )
    IopPoHandleIrp(Irp);
  else((void(__fastcall *)(_DEVICE_OBJECT *))DeviceObject->DriverObject->MajorFunction[MajorFunction])(DeviceObject);
}

Referenced by:

IofCallDriverSpecifyReturn
IopPerfCallDriver
IovCallDriver
IovpCallDriverNoIrpTracking
IovpCallDriverWithStackBuffer