wil_details_PopulateInitialConfiguredFeatureStatesFromBuffers
NTSTATUS __stdcall wil_details_PopulateInitialConfiguredFeatureStatesFromBuffers(INT64 *a1){
NTSTATUS v2;
INT64 *i;
INT64 v4;
INT64 v5;
unsigned int FeatureConfigurationFromBuffers;
NTSTATUS v7;
INT64 *v8;
__int64 v9;
INT64 v11;
int v12;
INT64 v13[3];
INT64 v14[3];
__int64 v15;
v2 = 0;
for( i = (INT64 *)&wil_details_featureDescriptors_a; ; i = v8 + 4 )
{
v8 = wil_details_FeatureDescriptors_SkipPadding(i);
if( !v8 )
break;
v15 = 0i64;
v11 = 0i64;
v12 = 0;
if( *((_BYTE *)v8 + 21) || *((_BYTE *)v8 + 22) )
{
FeatureConfigurationFromBuffers = -1073741275;
}
else
{
v14[0] = 0i64;
v4 = *a1;
v5 = *((unsigned int *)v8 + 4);
v13[0] = 0i64;
v14[1] = v4;
v14[2] = a1[1];
v13[1] = a1[2];
v13[2] = a1[3];
FeatureConfigurationFromBuffers = RtlpFcQueryFeatureConfigurationFromBuffers(
v5,
(INT64)v14,
(INT64)v13,
(INT64)&v11);
}
if( FeatureConfigurationFromBuffers == -2147483614 )
{
v15 = 131i64;
v9 = 131i64;
do
{
*(_QWORD *)*v8 = v9;
v8 = wil_details_FeatureDescriptors_SkipPadding(v8 + 4);
}
while( v8 );
return v2;
}
v7 = wil_details_BuildFeatureStateCacheFromQueryResults(FeatureConfigurationFromBuffers, (__int64)&v11, &v15);
if( v7 )
v2 = v7;
*(_QWORD *)*v8 = v15;
}
return v2;
}Referenced by:
wil_InitializeFeatureStagingFromBuffers