PnpWatchdogEtwWrite
INT64 __fastcall PnpWatchdogEtwWrite(INT64 a1, CHAR dl0){
__int64 ElapsedTime;
__int64 v5;
__int64 v6;
INT64 v7;
INT64 v8;
INT64 v9;
INT64 result;
INT64 v11;
int v12;
int v13;
int v14;
int v15;
int v16;
__int64 *v17;
int v18;
int v19;
int v20;
int v21;
__int64 *v22;
__int64 v23[7];
__int64 a2;
INT64 a5;
a2 = 0i64;
a5 = 0i64;
v23[0] = 0i64;
ElapsedTime = (unsigned int)PnpWatchdogGetElapsedTime((_QWORD *)a1);
v5 = 0i64;
v6 = 0i64;
PnpWatchdogExtractTriageInformation(v7, &a2, v23, 0i64, &a5);
if( a2 )
v5 = *(_QWORD *)(a2 + 48);
result = a5;
if( a5 && (v8 = *(_QWORD *)(a5 + 48), *(_WORD *)(v8 + 24)) )
{
v6 = *(_QWORD *)(v8 + 32);
}
else if( a2 && *(_WORD *)(a2 + 56) )
{
v6 = *(_QWORD *)(a2 + 64);
}
if( v23[0] )
{
v11 = *(_QWORD *)(v23[0] + 1152);
}
else
{
result = (INT64)PsGetCurrentThreadId();
v11 = result;
}
v12 = *(_DWORD *)(a1 + 16);
if( dl0 )
{
v13 = v12 - 1;
if( !v13 )
{
if( (byte_140C130BB & 0x20) != 0 )
{
v17 = (__int64 *)&KMPnPEvt_Watchdog_EventWorker_Start;
goto LABEL_28;
}
goto LABEL_29;
}
v14 = v13 - 1;
if( !v14 )
{
if( (byte_140C130BB & 0x20) != 0 )
{
v17 = KMPnPEvt_Watchdog_CompletionQueue_Start;
goto LABEL_28;
}
goto LABEL_29;
}
v15 = v14 - 1;
if( !v15 )
{
if( (byte_140C130BB & 0x20) != 0 )
{
v17 = KMPnPEvt_Watchdog_DelayedRemoveWorker_Start;
goto LABEL_28;
}
goto LABEL_29;
}
v16 = v15 - 1;
if( !v16 )
{
if( (byte_140C130BB & 0x20) != 0 )
{
v17 = KMPnPEvt_Watchdog_AddDevice_Start;
goto LABEL_28;
}
LABEL_29:
*(_BYTE *)(a1 + 32) = 1;
return result;
}
if( v16 == 1 )
{
if( (byte_140C130BB & 0x20) != 0 )
{
v17 = KMPnPEvt_Watchdog_DriverEntry_Start;
LABEL_28:
LODWORD(result) = McTemplateK0izzx_EtwWriteTransfer(v8, (EVENT_DESCRIPTOR *)v17, v9, v11, v5, v6, ElapsedTime);
goto LABEL_29;
}
goto LABEL_29;
}
LABEL_35:
__fastfail(5u);
}
v18 = v12 - 1;
if( !v18 )
{
if( (byte_140C130BB & 0x40) == 0 )
return result;
v22 = (__int64 *)&KMPnPEvt_Watchdog_EventWorker_Stop;
goto LABEL_46;
}
v19 = v18 - 1;
if( !v19 )
{
if( (byte_140C130BB & 0x40) == 0 )
return result;
v22 = KMPnPEvt_Watchdog_CompletionQueue_Stop;
goto LABEL_46;
}
v20 = v19 - 1;
if( !v20 )
{
if( (byte_140C130BB & 0x40) == 0 )
return result;
v22 = KMPnPEvt_Watchdog_DelayedRemoveWorker_Stop;
goto LABEL_46;
}
v21 = v20 - 1;
if( !v21 )
{
if( (byte_140C130BB & 0x40) == 0 )
return result;
v22 = KMPnPEvt_Watchdog_AddDevice_Stop;
goto LABEL_46;
}
if( v21 != 1 )
goto LABEL_35;
if( (byte_140C130BB & 0x40) != 0 )
{
v22 = KMPnPEvt_Watchdog_DriverEntry_Stop;
LABEL_46:
LODWORD(result) = McTemplateK0izzx_EtwWriteTransfer(v8, (EVENT_DESCRIPTOR *)v22, v9, v11, v5, v6, ElapsedTime);
}
return result;
}Referenced by:
PnpCallDriverEntry
PnpDisableWatchdog
PnpWatchdogWorkItem