PnprQueryReplaceFeatures

__int64 __fastcall PnprQueryReplaceFeatures(__int64 a1, PDEVICE_OBJECT *a2){
  int v2; 
  unsigned int v3; 
  unsigned int v4; 
  __int64 result; 
  INTERFACE Interface; 
  __int128 v7; 
  __int64 v8; 
  int v9; 
  v2 = *(_DWORD *)(a1 + 8);
  v3 = 0;
  v9 = 0;
  v8 = 0i64;
  memset(&Interface, 0, sizeof(Interface));
  v7 = 0i64;
  if( (v2 & 4) != 0 )
  {
    v4 = 8;
  }
  else
  {
    v4 = 0;
    if( (v2 & 8) != 0 )
      v4 = 16;
  }
  result = v4 | 0x20;
  if( (v2 & 0x10) == 0 )
    result = v4;
  if( !(_DWORD)result )
  {
    if( PnpQueryInterface(*a2, &GUID_PARTITION_UNIT_INTERFACE_STANDARD, 1u, 0x38u, 0i64, &Interface) >= 0 )
    {
      if( (*((int(__fastcall **)(void *, int *))&v7 + 1))(Interface.Context, &v9) >= 0 )
      {
        if( (v9 & 1) != 0 )
        {
          v3 = 8;
        }
        else if( (v9 & 2) != 0 )
        {
          v3 = 16;
        }
        if( (v9 & 4) != 0 )
          v3 |= 0x20u;
      }
      Interface.InterfaceDereference(Interface.Context);
      return v3;
    }
    else
    {
      return 0i64;
    }
  }
  return result;
}

Referenced by:

No references.