Pobieranie pełnej listy procesów Windows w C

Opracowuję prostą bibliotekę gromadzenia statystyk procesu dla systemu Windows. Wyliczam procesy za pomocąEnumProcesses() funkcja i próbuję je otworzyćOpenProcess() wywołanie z flagą PROCESS_QUERY_INFORMATION. Ten ostatni jednak nie działa na kilka procesów systemowych. Jednocześnie widzę, że podobne aplikacje (narzędzia sysinternals, menedżer zadań itp.) Wydają się być w stanie pobierać informacje o tych procesach nawet bez konieczności posiadania uprawnień administratora. Próbowałem włączyć uprawnienie SeDebugPrivilege, ale to pomogło tylko wtedy, gdy uruchomiłem mój program jako Administrator - i nadal nie mogłem otworzyć procesu bezczynności, procesu System i procesu audiodg (chciałbym móc odzyskać ich informacje dla spójności również).

Więc pytanie brzmi: jak mogę uzyskać informacje owszystko procesy (widzę to zrobione przez aplikacje innych firm, ale nie wiem, jak to zrobić)? Czy można to zrobić bez uprawnień administratora?

questionAnswers(1)

yourAnswerToTheQuestion