IopPerfCallDriver
NTSTATUS __stdcall IopPerfCallDriver(DEVICE_OBJECT *DeviceObject, IRP *Irp, PVOID ReturnAddress){
CHAR *IrpExtension;
unsigned __int32 v6;
NTSTATUS v7;
if( (IopPerfStatus & 2) != 0 )
{
if( IopIrpHasValidCombinationOfExtensionTypes(Irp, 1ui64) )
{
IrpExtension = IopAllocateIrpExtension((INT64)Irp, 1i64);
if( IrpExtension )
*((_QWORD *)IrpExtension + 5) = *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart;
}
}
if( (IopPerfStatus & 1) == 0 )
return IopfCallDriver(DeviceObject, Irp);
ObfReferenceObjectWithTag(DeviceObject, 0x746C6644u);
v6 = _InterlockedIncrement(&IopPerfDriverUniqueMatchId);
IopPerfLogCallEvent(*((_DRIVER_OBJECT **)DeviceObject + 1), Irp, v6);
v7 = IopfCallDriver(DeviceObject, Irp);
IopPerfLogCallReturnEvent(Irp, v6);
HalPutDmaAdapter((PADAPTER_OBJECT)DeviceObject);
return v7;
}Referenced by:
IofCallDriver
IofCallDriverSpecifyReturn
IovCallDriver
IovpCallDriverNoIrpTracking
IovpCallDriverWithStackBuffer