in helpers/windows/pdh/pdh_windows.go [339:378]
func PdhEnumObjectItems(objectName string) ([]uint16, []uint16, error) {
var (
cBuff = make([]uint16, 1)
cBuffSize = uint32(0)
iBuff = make([]uint16, 1)
iBuffSize = uint32(0)
)
obj := windows.StringToUTF16Ptr(objectName)
if err := _PdhEnumObjectItems(
0,
0,
obj,
&cBuff[0],
&cBuffSize,
&iBuff[0],
&iBuffSize,
PerformanceDetailWizard,
0); err != nil {
if PdhErrno(err.(syscall.Errno)) != PDH_MORE_DATA {
return nil, nil, PdhErrno(err.(syscall.Errno))
}
cBuff = make([]uint16, cBuffSize)
iBuff = make([]uint16, iBuffSize)
if err = _PdhEnumObjectItems(
0,
0,
obj,
&cBuff[0],
&cBuffSize,
&iBuff[0],
&iBuffSize,
PerformanceDetailWizard,
0); err != nil {
return nil, nil, err
}
return cBuff, iBuff, nil
}
return nil, nil, nil
}