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