PopPlRegisterPowerPlane
NTSTATUS __stdcall PopPlRegisterPowerPlane(INT64 InputBuffer){
__int64 v1;
__int64 v2;
int inited;
__int64 v5;
INT64 v6;
__int64 v7;
INT64 v8;
INT64 v9;
__int64 v10;
int v12;
int v13;
__int16 v14;
INT64 v15;
__int128 v16;
__int64 v17[5];
int v18;
int v19;
INT64 *v20;
int v21;
int v22;
v15 = 0i64;
v16 = 0i64;
if( PopPowerPlane )
{
inited = -1073741768;
}
else if( *(_DWORD *)(InputBuffer + 4) )
{
inited = -1073741735;
}
else if( *(_QWORD *)(InputBuffer + 16) )
{
inited = PopPlInitPowerPlane((UINT64 *)(InputBuffer + 24), InputBuffer, v1 + InputBuffer, &v15);
if( inited >= 0 )
{
v6 = v15;
*(_QWORD *)(v15 + 32) = *(_QWORD *)(InputBuffer + 8);
*(_QWORD *)(v6 + 40) = *(_QWORD *)(InputBuffer + 16);
*((_QWORD *)&v16 + 1) = v6;
PopPepIterateDeviceList(
0i64,
(unsigned __int8(__fastcall *)(_LIST_ENTRY *, __int64))PopPlActivateDeviceIterator,
0i64,
v5,
1,
0,
(__int64)&v16);
PopPepIterateDeviceList(
(void(__fastcall *)(__int64))PopPlCommitPowerPlaneRegistration,
(unsigned __int8(__fastcall *)(_LIST_ENTRY *, __int64))PopPlRegisterDeviceIterator,
(void(__fastcall *)(void(__fastcall *)(__int64), __int64))PopPlPublishInitialPowerDraw,
v7,
0,
0,
(__int64)&v16);
PopPlTraceLogPowerPlane((UINT16 *)v6, v8, v9);
PopPepIterateDeviceList(
0i64,
(unsigned __int8(__fastcall *)(_LIST_ENTRY *, __int64))PopPlIdleDeviceIterator,
0i64,
v10,
0,
1,
(__int64)&v16);
}
}
else
{
inited = -1073741811;
}
if( *(&stru_140C00F40 + 1194) > 5u )
{
v19 = 0;
v22 = 0;
v17[4] = (__int64)&v14;
v21 = 4;
v20 = &v15;
v14 = 1;
v18 = 2;
LODWORD(v15) = inited;
tlgWriteEx_EtwWriteEx(
(__int64)&stru_140C00F40 + 4776,
(unsigned __int8 *)&byte_14002974D,
v2,
1u,
v12,
v13,
4u,
(__int64)v17);
}
return inited;
}Referenced by:
PopPowerInformationInternal