Bootstrap

SetupDI 枚举串口


//具有完整的设备名

#include <windows.h>
#include <devguid.h>
#include <setupapi.h>
#pragma comment(lib, "Setupapi.lib")

void main()
{
  HDEVINFO hDevInfo = SetupDiGetClassDevs(&GUID_DEVCLASS_PORTS, NULL, NULL, 0);

  if(hDevInfo)
  {
    SP_DEVINFO_DATA SpDevInfo={sizeof(SP_DEVINFO_DATA)};
    for(DWORD iDevIndex=0; SetupDiEnumDeviceInfo(hDevInfo, iDevIndex, &SpDevInfo); iDevIndex++)
    {      
      TCHAR szName[512] = {0};
      if(SetupDiGetDeviceRegistryProperty(hDevInfo, &SpDevInfo, SPDRP_FRIENDLYNAME, 
        NULL, (PBYTE)szName, sizeof(szName), NULL))
      {
        _tprintf(_T("%s\n"), szName);
      }
    }

    SetupDiDestroyDeviceInfoList(hDevInfo);
  }

}


调试输出

USB Serial Port (COM3)
Xenon 1900 Area-Imaging Scanner (COM4)
Xenon 1900 Area-Imaging Scanner (COM5)



悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;