Aufzählen aller Gerätetreiber im System
Im folgenden Beispielcode wird die Funktion EnumDeviceDrivers verwendet, um die aktuellen Gerätetreiber im System zu aufzählen. Die von diesem Funktionsaufruf abgerufenen Ladeadressen werden an die GetDeviceDriverBaseName-Funktion übergeben, um einen Namen abzurufen, der angezeigt werden kann.
#include <windows.h>
#include <psapi.h>
#include <tchar.h>
#include <stdio.h>
// To ensure correct resolution of symbols, add Psapi.lib to TARGETLIBS
// and compile with -DPSAPI_VERSION=1
#define ARRAY_SIZE 1024
int main( void )
{
LPVOID drivers[ARRAY_SIZE];
DWORD cbNeeded;
int cDrivers, i;
if( EnumDeviceDrivers(drivers, sizeof(drivers), &cbNeeded) && cbNeeded < sizeof(drivers))
{
TCHAR szDriver[ARRAY_SIZE];
cDrivers = cbNeeded / sizeof(drivers[0]);
_tprintf(TEXT("There are %d drivers:\n"), cDrivers);
for (i=0; i < cDrivers; i++ )
{
if(GetDeviceDriverBaseName(drivers[i], szDriver, sizeof(szDriver) / sizeof(szDriver[0])))
{
_tprintf(TEXT("%d: %s\n"), i+1, szDriver);
}
}
}
else
{
_tprintf(TEXT("EnumDeviceDrivers failed; array size needed is %d\n"), cbNeeded / sizeof(LPVOID));
return 1;
}
return 0;
}