PnpAllocateWatchdog
VOID **PnpAllocateWatchdog(){
VOID **PoolWithTag;
VOID **v1;
UINT8 *v2;
__int64 v4[3];
int WatchdogTimeout;
int v6;
void(__fastcall __noreturn *v7)(__int64);
v4[1] = 0i64;
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0x28ui64, 1466200144i64);
v1 = PoolWithTag;
if( PoolWithTag )
{
v4[0] = (__int64)PoolWithTag;
*(_OWORD *)PoolWithTag = 0i64;
*((_OWORD *)PoolWithTag + 1) = 0i64;
PoolWithTag[4] = 0i64;
v4[2] = (__int64)PnpWatchdogWorkItem;
WatchdogTimeout = PnpQueryWatchdogTimeout(1);
v7 = PnpWatchdogBugcheck;
v6 = PnpQueryWatchdogTimeout(0);
v2 = PnpWatchdogTimerAllocate((__int64)v4);
v1[1] = v2;
if( !v2 )
{
ExFreePoolWithTag(v1, 0x57647050u);
return 0i64;
}
}
return v1;
}Referenced by:
PnpEnableWatchdog