PoInitializeBroadcast
NTSTATUS __stdcall PoInitializeBroadcast(){
VOID **PoolWithTag;
NTSTATUS v1;
VOID **v2;
_QWORD *v3;
__int64 v4;
_QWORD *v5;
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0x1D8ui64, 1936933968i64);
v1 = 0;
v2 = PoolWithTag;
if( !PoolWithTag )
return -1073741670;
memset(PoolWithTag, 0i64, 0x1D8u);
v3 = v2 + 12;
v2[2] = KeGetCurrentThread();
v4 = 5i64;
v2[55] = v2 + 54;
v2[54] = v2 + 54;
do
{
*(v3 - 2) = v3 - 3;
*(v3 - 3) = v3 - 3;
*v3 = v3 - 1;
*(v3 - 1) = v3 - 1;
v3[2] = v3 + 1;
v3[1] = v3 + 1;
v5 = v3 + 3;
v3[4] = v3 + 3;
v3 += 9;
*v5 = v5;
--v4;
}
while( v4 );
PpmBeginHighPerfRequest();
PopCurrentBroadcast = 0ui64;
rcx0 = v2;
PopBuildDeviceNotifyList((_PO_DEVICE_NOTIFY_ORDER *)(v2 + 6));
PopHaltDeviceIdle();
return v1;
}Referenced by:
PnprQuiesceDevices
PopDirectedDripsInitializeBroadcast
PopTransitionSystemPowerStateEx