PiDqQueryEnumObject
__int64 __fastcall PiDqQueryEnumObject(struct _SECURITY_SUBJECT_CONTEXT *a1, __int64 a2){
int AddObjectToResultSet;
bool v4;
_DWORD *ProcessAuditId;
int v7;
bool v8;
BOOL v10;
__int64 v11;
AddObjectToResultSet = 0;
v11 = 0i64;
v4 = 1;
LOBYTE(v10) = 1;
ProcessAuditId = a1->ProcessAuditId;
if( ProcessAuditId[5] )
goto LABEL_12;
if( (unsigned int)(ProcessAuditId[4] - 1) <= 2 )
{
PiPnpRtlApplyMandatoryFilters();
v4 = v10;
AddObjectToResultSet = v7;
}
if( AddObjectToResultSet == -1073741772 || AddObjectToResultSet == -1073741275 )
{
v4 = 0;
LOBYTE(v10) = 0;
AddObjectToResultSet = 0;
}
if( AddObjectToResultSet >= 0 && v4 )
{
LABEL_12:
if( !*((_QWORD *)a1->ProcessAuditId + 11)
|| ((AddObjectToResultSet = PiDqQueryEvaluateFilter((INT64)a1, *(_QWORD *)(a2 + 16), &v10),
AddObjectToResultSet == -1073741772) ? (v8 = 0, AddObjectToResultSet = 0) : (v8 = v10),
AddObjectToResultSet >= 0 && v8) )
{
if( (*((_DWORD *)a1->ProcessAuditId + 10) & 1) == 0
|| (AddObjectToResultSet = PiDqQueryAddObjectToResultSet((INT64)a1, a2), AddObjectToResultSet >= 0) )
{
AddObjectToResultSet = PiDqQueryActionQueueEntryCreate(1, a2, 0i64, &v11);
if( AddObjectToResultSet >= 0 )
PiDqQueryAppendActionEntry(a1, v11);
}
}
}
return(unsigned int)AddObjectToResultSet;
}Referenced by:
PiDqEnumQueryObjectsCallback