PnprQuiesceDevices
__int64 __fastcall PnprQuiesceDevices(__int64 a1){
NTSTATUS started;
__int64 v3;
int v4;
int v5;
int v6;
__int64 v7;
int v8;
int v9;
*(_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((_WIN32_POWERSTATE_PARAMETERS *)(a1 + 36));
started = PoStartPowerStateTasks((_WIN32_POWERSTATE_PARAMETERS *)(a1 + 36));
if( started >= 0 )
{
PoStartPartitionReplace((_WIN32_POWERSTATE_PARAMETERS *)(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((PO_BROADCAST_SYSTEM_STATE *)(a1 + 4));
*(_BYTE *)(a1 + 30) = 2;
started = PoBroadcastSystemState((PO_BROADCAST_SYSTEM_STATE *)(a1 + 4));
if( started >= 0 )
goto LABEL_16;
v6 = 2012;
}
else
{
v6 = 1994;
}
v7 = PnprContext;
v8 = *(_DWORD *)(PnprContext + 20984);
if( !v8 )
v8 = v6;
*(_DWORD *)(PnprContext + 20984) = v8;
v9 = *(_DWORD *)(v7 + 20988);
if( !v9 )
v9 = 7;
*(_DWORD *)(v7 + 20988) = v9;
}
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