ValidFilter
NTSTATUS __stdcall ValidFilter(UINT64 FilterLength, const _DEVPROP_FILTER_EXPRESSION *Filter){
unsigned int v3;
int v4;
const _DEVPROP_FILTER_EXPRESSION *i;
INT64 v7;
int v8[2];
__int128 *v9;
__int128 v10[3];
v8[1] = 0;
LODWORD(v7) = 0;
v8[0] = 1;
v9 = v10;
v3 = FilterLength;
memset(v10, 0, sizeof(v10));
if( FilterEval((INT64)GetPropertyFromPropArray, (INT64)v8, (unsigned int)FilterLength, (INT64)Filter, &v7) != -1073741811 )
{
v4 = 0;
if( !v3 )
return 1;
for( i = Filter + 10;
!*((_QWORD *)i - 1)
&& (unsigned int)PnpValidatePropertyData(*((VOID **)i + 1), *((unsigned int *)i + 1), *i) != 1;
i += 14 )
{
if( ++v4 >= v3 )
return 1;
}
}
return 0;
}Referenced by:
PiDqQueryValidateQueryData