func()

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
}