PnpUpdateRebootRequiredReason
INT64 __fastcall PnpUpdateRebootRequiredReason(INT64 a1, INT64 a2, INT64 a3){
unsigned int v3;
__int64 v6;
__int64 v8[2];
int v9;
int v10;
ULONG v11;
char v12;
v10 = HIDWORD(a2);
v3 = 0;
v12 = 0;
v11 = 0;
v9 = 0;
v8[0] = 0i64;
if( (int)PnpGetObjectProperty(
PiPnpRtlCtx,
a1,
1i64,
0i64,
0i64,
(__int64)&DEVPKEY_Device_IsRebootRequired,
&v9,
(unsigned __int64)&v12,
1,
&v11,
0) >= 0
&& v9 == 17
&& v11 == 1
&& v12 == -1
&& ((int)PnpGetObjectProperty(
PiPnpRtlCtx,
a1,
1i64,
0i64,
0i64,
(__int64)DEVPKEY_Device_RebootRequiredReason,
&v9,
(unsigned __int64)v8,
8,
&v11,
0) < 0
|| v9 != 9
|| v11 != 8) )
{
v6 = 0i64;
}
else
{
v6 = v8[0];
}
v8[0] = a3 | v6;
if( a3 | v6 )
return(unsigned int)PnpSetObjectProperty(
PiPnpRtlCtx,
a1,
1u,
0i64,
0i64,
(__int64)DEVPKEY_Device_RebootRequiredReason,
9,
(__int64)v8,
8u,
0);
else
PnpSetObjectProperty(PiPnpRtlCtx, a1, 1u, 0i64, 0i64, (__int64)DEVPKEY_Device_RebootRequiredReason, 0, 0i64, 0, 0);
return v3;
}Referenced by:
PiDevCfgProcessDevice
PipProcessRestartPhase2
PipProcessStartPhase2
PnpReallocateResources