title: PerformanceCounterCategory USB is MultiInstance, but no instances are found
body: <p>I'm playing with PerformanceCounters in C#. I already collected information about Processor and Memory and it was fine.
  Now, i wanted to check USB PerformanceCounterCategory. here's what i did:</p>
  
  <pre><code>        System.Diagnostics.PerformanceCounterCategory Category = new System.Diagnostics.PerformanceCounterCategory("USB",".");
          string[] instanceNames = Category.GetInstanceNames();
          List&lt;PerformanceCounter&gt; countersList_temp = new List&lt;PerformanceCounter&gt;();
          if (instanceNames.Length == 0)
          {
               countersList_temp.AddRange(Category.GetCounters());
          }
          else
          {
                for (int i = 0; i &lt; instanceNames.Length; i++)
                {
                       countersList_temp.AddRange(Category.GetCounters(instanceNames[i]));
                }
          }                                                  
  
          foreach (performanceCounter counter in countersList_temp)
          {
               counter.NextValue();
          }
  </code></pre>
  
  <p>For the above code, I get an Exception <code>InvalidOperationException</code> when calling <code>counter.NextValue();</code> It's description is: <code>Counter is not single instance, an instance name needs to be specified.</code>
  I didn't include any further code, which displays the collected values, because it's not what's important here.</p>
  
  <p>During debugging, I saw, that Category object (which is USB category) has CategoryType property set to <code>MultiInstance</code>. But <code>instanceNames[]</code> array is empty! <code>Category.GetInstanceNames();</code> does not return any instance for USB category. So why the property says <code>MultiInstance</code>? I think that's the issue and I have no idea how to deal with that.</p>