Freigeben über


EnumProcesses-Funktion (psapi.h)

Ruft den Prozessbezeichner für jedes Prozessobjekt im System ab.

Syntax

BOOL EnumProcesses(
  [out] DWORD   *lpidProcess,
  [in]  DWORD   cb,
  [out] LPDWORD lpcbNeeded
);

Parameter

[out] lpidProcess

Ein Zeiger auf ein Array, das die Liste der Prozessbezeichner empfängt.

[in] cb

Die Größe des pProcessIds-Arrays in Bytes.

[out] lpcbNeeded

Die Anzahl der im pProcessIds-Array zurückgegebenen Bytes.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Es empfiehlt sich, ein großes Array zu verwenden, da es schwierig ist, vorherzusagen, wie viele Prozesse zum Zeitpunkt des Aufrufs von EnumProcesses vorhanden sein werden.

Um zu bestimmen, wie viele Prozesse aufgelistet wurden, dividieren Sie den lpcbNeededed-Wert durch sizeof(DWORD). Es gibt keinen Hinweis, wenn der Puffer zu klein ist, um alle Prozessbezeichner zu speichern. Wenn lpcbNeeded gleichcb ist, sollten Sie den Aufruf daher mit einem größeren Array wiederholen.

Rufen Sie die OpenProcess-Funktion auf, um Prozesshandles für die Prozesse abzurufen, deren Bezeichner Sie gerade abgerufen haben.

Ab Windows 7 und Windows Server 2008 R2 erstellt Psapi.h Versionsnummern für die PSAPI-Funktionen. Die PSAPI-Versionsnummer wirkt sich auf den Namen aus, der zum Aufrufen der Funktion und der Bibliothek verwendet wird, die ein Programm laden muss.

Wenn PSAPI_VERSION 2 oder höher ist, wird diese Funktion in Psapi.h als K32EnumProcesses definiert und in Kernel32.lib und Kernel32.dll exportiert. Wenn PSAPI_VERSION 1 ist, wird diese Funktion in Psapi.h als EnumProcesses definiert und in Psapi.lib und Psapi.dll als Wrapper exportiert, der K32EnumProcesses aufruft.

Programme, die unter früheren Versionen von Windows sowie Windows 7 und höheren Versionen ausgeführt werden müssen, sollten diese Funktion immer als EnumProcesses aufrufen. Um die korrekte Auflösung von Symbolen sicherzustellen, fügen Sie Dem TARGETLIBS-Makro Psapi.lib hinzu, und kompilieren Sie das Programm mit –DPSAPI_VERSION=1. Laden Sie Psapi.dll, um die dynamische Laufzeitverknüpfung zu verwenden.

Beispiele

Ein Beispiel finden Sie unter Auflisten aller Prozesse oder Auflisten aller Module für einen Prozess.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile psapi.h
Bibliothek Kernel32.lib unter Windows 7 und Windows Server 2008 R2; Psapi.lib (wenn PSAPI_VERSION=1) unter Windows 7 und Windows Server 2008 R2; Psapi.lib unter Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP
DLL Kernel32.dll unter Windows 7 und Windows Server 2008 R2; Psapi.dll (wenn PSAPI_VERSION=1) unter Windows 7 und Windows Server 2008 R2; Psapi.dll unter Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP

Weitere Informationen

CreateToolhelp32Snapshot

OpenProcess

PSAPI-Funktionen

Prozessinformationen