IopPerfLogCallEvent
VOID __stdcall IopPerfLogCallEvent(_DRIVER_OBJECT *DriverObject, _IRP *Irp, UINT64 MatchId){
__int64 v3;
int v4;
__int64 v5;
UINT64 Flag;
int v7[2];
int(__fastcall *v8)(_DEVICE_OBJECT *, _IRP *);
__int64 v9;
_IRP *v10;
int v11;
EVENT_DATA_DESCRIPTOR EventData;
v9 = 0i64;
v3 = *((_QWORD *)Irp + 23);
v7[0] = *(unsigned __int8 *)(v3 - 72);
v7[1] = *(unsigned __int8 *)(v3 - 71);
v4 = *((_DWORD *)Irp + 4);
v8 = DriverObject->MajorFunction[*(unsigned __int8 *)(v3 - 72)];
v10 = Irp;
v11 = MatchId;
if( (v4 & 8) != 0 )
{
v5 = *((_QWORD *)Irp + 3);
if( v5 )
v5 = *(_QWORD *)(v5 + 192);
}
else
{
v5 = *((_QWORD *)Irp + 24);
}
v9 = v5;
if( v5 )
{
if( *(_QWORD *)(v5 + 24) )
v5 = *(_QWORD *)(v5 + 24);
v9 = v5;
}
EventData.Reserved = 0;
EventData.Ptr = (unsigned __int64)v7;
EventData.Size = 36;
LODWORD(Flag) = 4200450;
EtwTraceKernelEvent(&EventData, 1ui64, 0x20000010ui64, 0x122u, Flag);
}Referenced by:
IopPerfCallDriver