Open nixawk opened 5 years ago
#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; } // https://msdn.microsoft.com/en-us/library/windows/desktop/ms682619(v=vs.85).aspx // https://msdn.microsoft.com/en-us/library/windows/desktop/ms682617(v=vs.85).aspx