CcReEngageWorkerThreads
VOID __stdcall CcReEngageWorkerThreads(UINT64 NormalThreadsToActivate, UINT64 ExtraWriteBehindThreadsToActivate){
unsigned int v2;
unsigned int v3;
unsigned int v4;
unsigned int v5;
_QWORD **v7;
_QWORD *v8;
_QWORD *v9;
unsigned int v10;
_QWORD **v11;
_QWORD *v12;
_QWORD *v13;
v3 = 0;
v4 = v2;
v5 = ExtraWriteBehindThreadsToActivate;
if( (_DWORD)ExtraWriteBehindThreadsToActivate )
{
v7 = (_QWORD **)(NormalThreadsToActivate + 208);
do
{
v8 = *v7;
if( *v7 == v7 )
break;
if( (_QWORD **)v8[1] == v7 )
{
v9 = (_QWORD *)*v8;
if( *(_QWORD **)(*v8 + 8i64) == v8 )
continue;
}
LABEL_17:
__fastfail(3u);
*v7 = v9;
v9[1] = v7;
++*(_DWORD *)(NormalThreadsToActivate + 204);
if( _InterlockedIncrement64((volatile signed __int64 *)(NormalThreadsToActivate + 968)) <= 1 )
__fastfail(0xEu);
*v8 = 0i64;
ExQueueWorkItemToPartition(v8);
++v3;
}
while( v3 < v5 );
}
v10 = 0;
if( v4 )
{
v11 = (_QWORD **)(NormalThreadsToActivate + 304);
do
{
v12 = *v11;
if( *v11 == v11 )
break;
if( (_QWORD **)v12[1] != v11 )
goto LABEL_17;
v13 = (_QWORD *)*v12;
if( *(_QWORD **)(*v12 + 8i64) != v12 )
goto LABEL_17;
*v11 = v13;
v13[1] = v11;
++*(_DWORD *)(NormalThreadsToActivate + 320);
if( _InterlockedIncrement64((volatile signed __int64 *)(NormalThreadsToActivate + 968)) <= 1 )
__fastfail(0xEu);
*v12 = 0i64;
ExQueueWorkItemToPartition(v12);
++v10;
}
while( v10 < v4 );
}
}Referenced by:
CcAdjustWriteBehindThreadPool
CcWorkerThread