in helpers/windows/pdh/pdh_query_windows.go [329:369]
func getCounterValue(counter *Counter) CounterValue {
counterValue := CounterValue{Instance: counter.instanceName, Err: CounterValueError{CStatus: 0}}
switch counter.format {
case PdhFmtLong:
_, value, err := PdhGetFormattedCounterValueLong(counter.handle)
if err != nil {
counterValue.Err.Error = err
if value != nil {
counterValue.Err.CStatus = value.CStatus
}
} else {
counterValue.Measurement = value.Value
}
case PdhFmtLarge:
_, value, err := PdhGetFormattedCounterValueLarge(counter.handle)
if err != nil {
counterValue.Err.Error = err
if value != nil {
counterValue.Err.CStatus = value.CStatus
}
} else {
counterValue.Measurement = value.Value
}
case PdhFmtDouble:
_, value, err := PdhGetFormattedCounterValueDouble(counter.handle)
if err != nil {
counterValue.Err.Error = err
if value != nil {
counterValue.Err.CStatus = value.CStatus
}
} else {
counterValue.Measurement = value.Value
}
default:
counterValue.Err.Error = fmt.Errorf("initialization failed: format '%#v' "+
"for instance '%s' is invalid (must be PdhFmtDouble, PdhFmtLarge or PdhFmtLong)",
counter.format, counter.instanceName)
}
return counterValue
}