EnumDeviceDrivers-Funktion (psapi.h)
Ruft die Ladeadresse für jeden Gerätetreiber im System ab.
Syntax
BOOL EnumDeviceDrivers(
[out] LPVOID *lpImageBase,
[in] DWORD cb,
[out] LPDWORD lpcbNeeded
);
Parameter
[out] lpImageBase
Ein Array, das die Liste der Ladeadressen für die Gerätetreiber empfängt.
[in] cb
Die Größe des lpImageBase-Arrays in Bytes. Wenn das Array nicht groß genug ist, um die Ladeadressen zu speichern, empfängt der lpcbNeed-Parameter die erforderliche Größe des Arrays.
[out] lpcbNeeded
Die Anzahl der im array lpImageBase 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
Um zu bestimmen, wie viele Gerätetreiber durch den Aufruf von EnumDeviceDrivers aufgelistet wurden, dividieren Sie den resultierenden Wert im lpcbNeeded-Parameter durch sizeof(LPVOID)
.
Ab Windows 7 und Windows Server 2008 R2 richtet Psapi.h Versionsnummern für die PSAPI-Funktionen ein. 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 als K32EnumDeviceDrivers in Psapi.h definiert und in Kernel32.lib und Kernel32.dll exportiert. Wenn PSAPI_VERSION 1 ist, wird diese Funktion als EnumDeviceDrivers in Psapi.h definiert und in Psapi.lib exportiert und Psapi.dll als Wrapper, der K32EnumDeviceDrivers 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 EnumDeviceDrivers aufrufen. Fügen Sie dem TARGETLIBS-Makro Psapi.lib hinzu, und kompilieren Sie das Programm mit –DPSAPI_VERSION=1, um die richtige Auflösung von Symbolen sicherzustellen. Laden Sie Psapi.dll, um dynamische Laufzeitverknüpfung zu verwenden.
Ab Windows 11 Version 24H2 erfordert EnumDeviceDriversSeDebugPrivilege, um gültige ImageBase-Werte zurückzugeben. Die Funktion ist weiterhin erfolgreich, wenn diese Berechtigung für den Aufrufer nicht aktiviert ist, aber das zurückgegebene lpImageBase-Array Adressen enthält, die alle NULL sind.
Beispiele
Ein Beispiel finden Sie unter Auflisten aller Gerätetreiber im System.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-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 |