PnprQuiesceDevices
INT64 __fastcall PnprQuiesceDevices(INT64 a1){
int started;
UINT64 v3;
int v4;
int v5;
__int64 v6;
EVENT_DESCRIPTOR *v7;
int v8;
__int64 v9;
EVENT_DESCRIPTOR *v10;
UINT64 v11;
int v12;
int v13;
*(_DWORD *)(PnprContext + 21024) = PnprGetMillisecondCounter(0);
*(_OWORD *)a1 = 0i64;
*(_OWORD *)(a1 + 16) = 0i64;
*(_OWORD *)(a1 + 32) = 0i64;
*(_QWORD *)(a1 + 48) = 0i64;
*(_DWORD *)(a1 + 56) = 0;
*(_DWORD *)a1 = -2013265920;
*(_DWORD *)(a1 + 48) = -2013265920;
*(_DWORD *)(a1 + 40) = 2;
*(_DWORD *)(a1 + 44) = 5;
*(_DWORD *)(a1 + 32) = PoBlockConsoleSwitch((_DWORD *)(a1 + 36));
started = PoStartPowerStateTasks((_DWORD *)(a1 + 36));
if( started >= 0 )
{
PoStartPartitionReplace((VOID *)(a1 + 36), *(unsigned int *)(a1 + 32));
*(_DWORD *)(a1 + 8) = 5;
*(_DWORD *)(a1 + 16) = 1;
*(_DWORD *)(a1 + 4) = 1;
*(_DWORD *)(a1 + 24) = *(_DWORD *)a1;
*(_DWORD *)(a1 + 12) = 5;
*(_DWORD *)(a1 + 20) = 2;
started = PoInitializeBroadcast();
if( started >= 0 )
{
*(_BYTE *)(a1 + 30) = 3;
PoBroadcastSystemState(a1 + 4, v6, v7);
*(_BYTE *)(a1 + 30) = 2;
started = PoBroadcastSystemState(a1 + 4, v9, v10);
if( started >= 0 )
goto LABEL_16;
v8 = 2012;
}
else
{
v8 = 1994;
}
v11 = PnprContext;
v12 = *(_DWORD *)(PnprContext + 20984);
if( !v12 )
v12 = v8;
*(_DWORD *)(PnprContext + 20984) = v12;
v13 = *(_DWORD *)(v11 + 20988);
if( !v13 )
v13 = 7;
*(_DWORD *)(v11 + 20988) = v13;
}
else
{
v3 = PnprContext;
v4 = *(_DWORD *)(PnprContext + 20984);
if( !v4 )
v4 = 1971;
v5 = *(_DWORD *)(PnprContext + 20988);
*(_DWORD *)(PnprContext + 20984) = v4;
if( !v5 )
v5 = 7;
*(_DWORD *)(v3 + 20988) = v5;
}
LABEL_16:
*(_DWORD *)(PnprContext + 21028) = PnprGetMillisecondCounter(0);
return(unsigned int)started;
}Referenced by:
PnprQuiesceWorker