The problem with getting process information on Win32 systems is that there are *too many* different ways to do the roughly the same thing. Of course, the differences are just big enough that no one interface gives you all the information that you want. That, or it's not supported on your version of Windows (or requires additional components be installed).
I found this page this lists no less that FIVE ways to enumerate processes information on Win32 systems. This includes one, ZwQuerySystemInformation, that isn't even documented on the MSDN site.
What a pain.