PiDqQueryFreeActiveData
VOID __stdcall PiDqQueryFreeActiveData(_PI_DQ_QUERY *Query){
_RTL_AVL_TABLE *i;
_PI_DQ_QUERY_ACTION_QUEUE_ENTRY **v3;
_PI_DQ_QUERY_ACTION_QUEUE_ENTRY *v4;
_DEV_QUERY_RESULT_ACTION_DATA *v5;
__int64 v6;
for( i = (_RTL_AVL_TABLE *)(Query + 18);
!(unsigned __int8)RtlIsGenericTableEmptyAvl(i);
i = (_RTL_AVL_TABLE *)(Query + 18) )
{
PiDqQueryDeleteObjectFromResultSet(Query, *(_QWORD *)(*((_QWORD *)Query + 11) + 32i64));
}
v3 = (_PI_DQ_QUERY_ACTION_QUEUE_ENTRY **)(Query + 48);
while( 1 )
{
v4 = *v3;
if( *v3 == (_PI_DQ_QUERY_ACTION_QUEUE_ENTRY *)v3 )
break;
if( *((_PI_DQ_QUERY_ACTION_QUEUE_ENTRY ***)v4 + 1) != v3
|| (v6 = *(_QWORD *)v4, *(_PI_DQ_QUERY_ACTION_QUEUE_ENTRY **)(*(_QWORD *)v4 + 8i64) != v4) )
{
__fastfail(3u);
}
*v3 = (_PI_DQ_QUERY_ACTION_QUEUE_ENTRY *)v6;
*(_QWORD *)(v6 + 8) = v3;
PiDqQueryActionQueueEntryFree(v4);
}
Query[52] = 0;
v5 = (_DEV_QUERY_RESULT_ACTION_DATA *)*((_QWORD *)Query + 23);
if( v5 )
{
PiDqActionDataFree(v5);
*((_QWORD *)Query + 23) = 0i64;
}
}Referenced by:
PiDqIrpQueryCreate
PiDqIrpQueryGetResult
PiDqObjectManagerServiceActionQueue
PiDqQueryApplyObjectEvent
PiDqQueryRelease