PnpCallDriverEntry
INT64 __fastcall PnpCallDriverEntry(INT64 a1, INT64 a2){
CHAR *v4;
unsigned int v5;
__int64 v6;
INT64 v7;
_QWORD v9[5];
v9[0] = 0i64;
v9[1] = a1;
v9[2] = KeGetCurrentThread();
v4 = PnpEnableWatchdog(5i64, (INT64)v9);
v5 = (*(__int64(__fastcall **)(INT64, INT64))(a1 + 88))(a1, a2);
if( v4 )
{
v6 = *((_QWORD *)v4 + 1);
ExDeleteTimer(*(_QWORD *)(v6 + 56), 1, 1, 0i64);
*(_QWORD *)(v6 + 56) = 0i64;
if( *(int *)(v6 + 96) > 0 )
KeWaitForSingleObject((PVOID)(v6 + 104), Executive, 0, 0, 0i64);
ExFreePoolWithTag((PVOID)v6, 0x54645750u);
v7 = *((unsigned int *)v4 + 4);
*((_QWORD *)v4 + 1) = 0i64;
PnpRecordBlackbox(0i64, v7);
if( v4[32] )
PnpWatchdogEtwWrite((INT64)v4, 0);
PnpFreeWatchdog(v4);
}
return v5;
}Referenced by:
IopLoadDriver