RtlQueryFeatureConfiguration
__int64 __fastcall RtlQueryFeatureConfiguration(unsigned int a1, unsigned int a2, _QWORD *a3){
char v6;
void *v7;
INT64 *BufferManager;
NTSTATUS FeatureConfigurationFromBufferSet;
unsigned int v11;
__int64 v12;
__int64 v13[2];
PVOID BugCheckParameter4;
v12 = 0i64;
v13[0] = 0i64;
if( ObGetCurrentIrql() <= 1u )
{
BufferManager = RtlpFcGetBufferManager();
RtlpFcBufferManagerReferenceBuffers((__int64)BufferManager, (__int64)&v12, v13);
FeatureConfigurationFromBufferSet = RtlpFcQueryFeatureConfigurationFromBufferSet(v13[0], a1, a2);
v11 = FeatureConfigurationFromBufferSet;
if( FeatureConfigurationFromBufferSet >= 0 )
{
v11 = 0;
*a3 = v12;
}
else if( FeatureConfigurationFromBufferSet == -1073741275 || FeatureConfigurationFromBufferSet == -2147483614 )
{
*a3 = v12;
}
RtlpFcBufferManagerDereferenceBuffers(BufferManager, v13[0]);
return v11;
}
else
{
if( !KeIsBugCheckActive(0i64) && PoPowerDownActionInProgress == v6 )
KeBugCheckEx(0xAu, RtlQueryFeatureConfiguration, v7, 0i64, BugCheckParameter4);
return 2147483682i64;
}
}Referenced by:
CmQuerySingleFeatureConfiguration
wil_details_GetCurrentFeatureEnabledState
wil_details_OnFeatureConfigurationChange