PopFxInitializeWorkPool
NTSTATUS __stdcall PopFxInitializeWorkPool(VOID *Context, INT64 a2){
__int64 v4;
_KSEMAPHORE *v5;
_QWORD *v6;
__int64 v7;
memset((char *)Context + 24, 0i64, 0x118u);
*((_QWORD *)Context + 1) = 0i64;
*(_QWORD *)Context = a2;
v4 = 2i64;
*((_QWORD *)Context + 3) = (char *)Context + 16;
v5 = (_KSEMAPHORE *)((char *)Context + 32);
*((_QWORD *)Context + 2) = (char *)Context + 16;
do
{
KeInitializeSemaphore(v5++, 0, 0x7FFFFFFF);
--v4;
}
while( v4 );
v6 = (char *)Context + 136;
v7 = 4i64;
do
{
*(v6 - 4) = Context;
*(v6 - 3) = 0i64;
*(v6 - 1) = PopFxPluginWork;
*v6 = v6 - 4;
v6 += 5;
--v7;
}
while( v7 );
return PopFxCreateEmergencyWorkerThread(Context);
}Referenced by:
PoFxInitPowerManagement
PopFxRegisterPluginEx