PfFbBufferListFlushStandby
VOID __stdcall PfFbBufferListFlushStandby(){
struct _EX_RUNDOWN_REF *v0;
struct _EX_RUNDOWN_REF *v1;
PSLIST_ENTRY v2;
PSLIST_ENTRY v3;
INT64 v4;
v1 = v0;
if( ExAcquireRundownProtection(v0) )
{
v2 = RtlpInterlockedFlushSList((PSLIST_HEADER)&v1[4]);
while( v2 )
{
v3 = v2;
v2 = v2->Next;
if( ExAcquireRundownProtection(v1) )
{
((void(__fastcall *)(PSLIST_ENTRY))v1[12].Count)(v3);
}
else
{
LODWORD(v4) = 0;
PfFbBufferListInsertInFree(
(SLIST_ENTRY *)v1,
v3,
(unsigned int)(LODWORD(v3[2].Next) - (_DWORD)v3),
*((unsigned int *)&v3[2].Next + 3),
v4);
}
}
ExReleaseRundownProtection(v1);
}
}Referenced by:
PfGetCompletedTrace
PfSnEndTrace
PfpFlushEventBuffers