MiBuildWakeList
_MI_CONTROL_AREA_WAIT_BLOCK *__stdcall MiBuildWakeList(_CONTROL_AREA *ControlArea, UINT64 WaitMask){
_MI_CONTROL_AREA_WAIT_BLOCK **p_WaitList;
_MI_CONTROL_AREA_WAIT_BLOCK *v3;
_MI_CONTROL_AREA_WAIT_BLOCK *WaitList;
_MI_CONTROL_AREA_WAIT_BLOCK *v6;
p_WaitList = &ControlArea->WaitList;
v3 = 0i64;
WaitList = ControlArea->WaitList;
if( WaitList )
{
do
{
v6 = *(_MI_CONTROL_AREA_WAIT_BLOCK **)WaitList;
if( ((unsigned int)WaitMask & *((_DWORD *)WaitList + 2)) != 0 )
{
if( (WaitMask & 4) != 0 )
{
*((_DWORD *)WaitList + 3) = 1;
}
else
{
*(_QWORD *)WaitList = v3;
v3 = WaitList;
*p_WaitList = v6;
}
}
else
{
p_WaitList = (_MI_CONTROL_AREA_WAIT_BLOCK **)WaitList;
}
WaitList = v6;
}
while( v6 );
}
return v3;
}Referenced by:
MiCheckControlArea
MiComputeDataFlushRange
MiDecrementLargeSubsections
MiDecrementModifiedWriteCount
MiIncrementLargeSubsections
MiPrepareSegmentForDeletion
MiPreventControlAreaDeletion
MiReferenceActiveControlArea
MiReferencePfBackedSection
MiUnlockControlAreaSectionExtend