PnpCallDriverEntry
__int64 __fastcall PnpCallDriverEntry(__int64 a1, __int64 a2){
VOID **v4;
unsigned int v5;
int *v6;
int v7;
_QWORD v9[5];
v9[0] = 0i64;
v9[1] = a1;
v9[2] = KeGetCurrentThread();
v4 = PnpEnableWatchdog(5, (__int64)v9);
v5 = (*(__int64(__fastcall **)(__int64, __int64))(a1 + 88))(a1, a2);
if( v4 )
{
v6 = (int *)v4[1];
ExDeleteTimer(*((_QWORD *)v6 + 7), 1, 1, 0i64);
*((_QWORD *)v6 + 7) = 0i64;
if( v6[24] > 0 )
KeWaitForSingleObject((UINT64)(v6 + 26), 0, 0, 0, 0i64);
ExFreePoolWithTag(v6, 0x54645750u);
v7 = *((_DWORD *)v4 + 4);
v4[1] = 0i64;
PnpRecordBlackbox(0i64, v7);
if( *((_BYTE *)v4 + 32) )
PnpWatchdogEtwWrite((__int64)v4, 0);
PnpFreeWatchdog(v4);
}
return v5;
}Referenced by:
IopLoadDriver