in providers/windows/process_windows.go [42:64]
func (s windowsSystem) Processes() (procs []types.Process, err error) {
pids, err := windows.EnumProcesses()
if err != nil {
return nil, fmt.Errorf("EnumProcesses: %w", err)
}
procs = make([]types.Process, 0, len(pids))
var proc types.Process
for _, pid := range pids {
if pid == 0 || pid == 4 {
// The Idle and System processes (PIDs 0 and 4) can never be
// opened by user-level code (see documentation for OpenProcess).
continue
}
if proc, err = s.Process(int(pid)); err == nil {
procs = append(procs, proc)
}
}
if len(procs) == 0 {
return nil, err
}
return procs, nil
}