windows: fix EnumProcesses to pass the correct array size

Implementation generated directly with mkwinsyscall has a wrong
assumption about the expected value for PIDs buffer size.

This change adds some small manual code that converts the input
slice length to the number of bytes of the array backing the slice.

A test is also added. It fails with the previous implementation.

Fixes golang/go#60223

Change-Id: I5e2414acb29c6c949e5e6acd328043f8a8883887
Commit-Queue: Quim Muntal <>
TryBot-Result: Gopher Robot <>
Reviewed-by: Bryan Mills <>
Run-TryBot: Quim Muntal <>
Reviewed-by: Quim Muntal <>
Reviewed-by: Heschi Kreinick <>
3 files changed
tree: f79a297840e98b0d84f89319da8057b9d4d73638
  1. cpu/
  2. execabs/
  3. internal/
  4. plan9/
  5. unix/
  6. windows/
  7. .gitattributes
  8. .gitignore
  9. codereview.cfg
  11. go.mod


Go Reference

This repository holds supplemental Go packages for low-level interactions with the operating system.


The easiest way to install is to run go get -u You can also manually git clone the repository to $GOPATH/src/

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see

The main issue tracker for the sys repository is located at Prefix your issue with “x/sys:” in the subject line, so it is easy to find.