code: func (m *Manager) CounterInfo(ctx context.Context) ([]types.PerfCounterInfo, error) {
  	m.pm.Lock()
  	defer m.pm.Unlock()
  
  	if len(m.pm.PerfCounter) == 0 {
  		err := m.Properties(ctx, m.Reference(), []string{"perfCounter"}, m.pm.PerformanceManager)
  		if err != nil {
  			return nil, err
  		}
  	}
  
  	return m.pm.PerfCounter, nil
  }
docs: // CounterInfo gets the PerformanceManager.PerfCounter property.
  // The property value is only collected once, subsequent calls return the cached value.