EtwpDiskProvTraceDisk
void __fastcall EtwpDiskProvTraceDisk(unsigned __int16 a1, __int64 a2, __int64 a3, __int64 a4){
ULONGLONG v4;
int v8;
const _EVENT_DESCRIPTOR *EventDescriptor;
VOID *Traits;
UINT8 v11;
_ETW_GUID_ENTRY *v12;
_ETW_GUID_ENTRY *GroupEntry;
UINT8 v14;
UINT8 v15;
_ETW_GUID_ENTRY *v16;
_ETW_GUID_ENTRY *v17;
UINT8 v18;
UINT64 UserDataCount;
UINT64 EventKey;
UINT64 LoggerMask[2];
__int128 v22;
v4 = EtwpDiskProvRegHandle;
EventKey = 0i64;
*(_OWORD *)LoggerMask = 0i64;
v22 = 0i64;
if( EtwpDiskProvRegHandle )
{
v8 = a1 - 266;
if( v8 )
{
if( v8 == 4 )
EventDescriptor = (const _EVENT_DESCRIPTOR *)KDskEvt_Flush;
else
EventDescriptor = &KDskEvt_Write;
}
else
{
EventDescriptor = (const _EVENT_DESCRIPTOR *)KDskEvt_Read;
}
*(_DWORD *)(a2 + 8) -= 4;
Traits = (VOID *)((*(_QWORD *)(v4 + 104) + 28i64) & -(__int64)(*(_QWORD *)(v4 + 104) != 0i64));
if( *(_BYTE *)(v4 + 100)
&& EtwpLevelKeywordEnabled(*(_QWORD *)(v4 + 32) + 96i64, EventDescriptor->Level, EventDescriptor->Keyword) )
{
LODWORD(UserDataCount) = 1;
EtwpEventWriteFull(
v12,
v11,
0i64,
0i64,
EventDescriptor,
0,
0,
(const _GUID *)a4,
0i64,
UserDataCount,
(_EVENT_DATA_DESCRIPTOR *)a2,
(_ETHREAD *)a3,
LoggerMask,
0i64,
*(_WORD *)(v4 + 98),
Traits,
&EventKey);
}
if( *(_BYTE *)(v4 + 101)
&& EtwpLevelKeywordEnabled(*(_QWORD *)(v4 + 40) + 96i64, EventDescriptor->Level, EventDescriptor->Keyword) )
{
LODWORD(UserDataCount) = 1;
EtwpEventWriteFull(
*(_ETW_GUID_ENTRY **)(v4 + 32),
v14,
0i64,
0i64,
EventDescriptor,
0,
0,
(const _GUID *)a4,
0i64,
UserDataCount,
(_EVENT_DATA_DESCRIPTOR *)a2,
(_ETHREAD *)a3,
LoggerMask,
GroupEntry,
*(_WORD *)(v4 + 98),
Traits,
&EventKey);
}
if( *(_QWORD *)(*(_QWORD *)(v4 + 32) + 400i64) )
{
*(_OWORD *)LoggerMask = 0i64;
v22 = 0i64;
if( *(_BYTE *)(v4 + 102)
&& EtwpLevelKeywordEnabled(
*(_QWORD *)(*(_QWORD *)(v4 + 32) + 400i64) + 96i64,
EventDescriptor->Level,
EventDescriptor->Keyword) )
{
LODWORD(UserDataCount) = 1;
EtwpEventWriteFull(
v16,
v15,
0i64,
0i64,
EventDescriptor,
0,
0,
(const _GUID *)a4,
0i64,
UserDataCount,
(_EVENT_DATA_DESCRIPTOR *)a2,
(_ETHREAD *)a3,
LoggerMask,
0i64,
*(_WORD *)(v4 + 98),
Traits,
&EventKey);
}
if( *(_BYTE *)(v4 + 103) )
{
if( EtwpLevelKeywordEnabled(
*(_QWORD *)(*(_QWORD *)(v4 + 40) + 400i64) + 96i64,
EventDescriptor->Level,
EventDescriptor->Keyword) )
{
LODWORD(UserDataCount) = 1;
EtwpEventWriteFull(
*(_ETW_GUID_ENTRY **)(*(_QWORD *)(v4 + 32) + 400i64),
v18,
0i64,
0i64,
EventDescriptor,
0,
0,
(const _GUID *)a4,
0i64,
UserDataCount,
(_EVENT_DATA_DESCRIPTOR *)a2,
(_ETHREAD *)a3,
LoggerMask,
v17,
*(_WORD *)(v4 + 98),
Traits,
&EventKey);
}
}
}
}
}Referenced by:
EtwpTraceIo