윈도우 운영체제에서 USB 장치의 목록의 열거

Windows 운영체제에서 특정한 디바이스 목록에 접근하려면 Vender ID 와 Product ID 를 통해 윈도우  API 를 사용하여 장치 관리자에 등록된 PnP 장치의 디바이스 드라이버를 통해 접근할 수 있으며, 보다 상세하게는 대표적으로 표준 장치들에 대한 공용 드라이버와 장치 개발사에서 제작한 디바이스 드라이버에 접근하여 장치의 ‘Device Handle’ 을 통해 접근할 수 있습니다.

윈도우와 리눅스에서 장치는 ‘파일’ 로 취급합니다. 따라서 위 VID 와 PID 를 조회하여 장치의 목록을 얻어 디바이스 핸들을 이용하여 제어할 수 있습니다.
다만, 디바이스드라이버와 응용프로그램과의 통신을 위해서는 디바이스 드라이버에 대한 사전 지식이 필요합니다.

단순히 장치 목록의 접근을 위해서는 윈도우 운영체제에서 내장된 파워쉘을 이용할 수 있거나 공개된 USBDeview 소프트웨어를 이용할 수 있습니다.

실제 프로그래밍적인 요소로 접근하려면 윈도우 운영체제의 Setupapi.dll 의 SetupDiGetDeviceProperty,SetupDiEnumDeviceInfo 함수를 이용하여 장치의 목록을 얻을 수 있으며
이는 윈도우 운영체제에서 제공하는 API 입니다.

관련 URL 을 참조하시기 바랍니다.

http://pyrasis.com/main/WindowsDriver/SetupDiFunctions

https://winaero.com/how-to-find-and-list-connected-usb-devices-in-windows-10/

 

<USB 장치의 목록을 얻는 샘플 코드입니다. Visual C++ 로 컴파일할 수 있습니다>

USBInfo