IopPerfCallDriver
NTSTATUS __stdcall IopPerfCallDriver(_DEVICE_OBJECT *DeviceObject, _IRP *Irp, PVOID ReturnAddress){
_IOP_IRP_EXTENSION *IrpExtension;
unsigned __int32 v6;
NTSTATUS v7;
NTSTATUS v8;
NTSTATUS v9;
if( (IopPerfStatus & 2) != 0 )
{
if( IopIrpHasValidCombinationOfExtensionTypes(Irp, 1ui64) )
{
IrpExtension = IopAllocateIrpExtension(Irp, IopTimestampType);
if( IrpExtension )
IrpExtension->Timestamp.QuadPart = *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart;
}
}
if( (IopPerfStatus & 1) != 0 )
{
ObfReferenceObjectWithTag(DeviceObject, 0x746C6644ui64);
v6 = _InterlockedIncrement((_DWORD *)&stru_140C452E0 + 202);
IopPerfLogCallEvent(DeviceObject->DriverObject, Irp, v6);
IopfCallDriver(DeviceObject, Irp);
v8 = v7;
IopPerfLogCallReturnEvent(Irp, v6);
HalPutDmaAdapter((PADAPTER_OBJECT)DeviceObject);
}
else
{
IopfCallDriver(DeviceObject, Irp);
return v9;
}
return v8;
}Referenced by:
IofCallDriver
IofCallDriverSpecifyReturn
IovCallDriver
IovpCallDriverNoIrpTracking
IovpCallDriverWithStackBuffer