最近在开发USB相关的内容,在此记录一下列举USB设备的代码(还可以列举USB HUB)。
由于直接使用系统定义的GUID有问题,所以在头文件中自己需要定义相关的GUID:
头文件代码如下(定义了USB DEVICE 和 USB HUB两种的GUID,如果其他请看msdn):
#pragma once
#include "resource.h"
#include <stdio.h>
#include <windows.h>
#include <SetupAPI.h>
#include <iostream>
#include <Usbiodef.h>
#include <Usbioctl.h>
#include <devguid.h>
#include <winioctl.h>
#include <INITGUID.h>
#include <Dbt.h>
#include <map>
#include <wchar.h>
#pragma comment(lib, "Winmm.lib")
#pragma comment(lib, "setupapi.lib")
DEFINE_GUID(GUID_DEVINTERFACE_USB_DEVICE,
0xA5DCBF10L, 0x6530, 0x11D2, 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED);
#define GUID_CLASS_USB_DEVICE GUID_DEVINTERFACE_USB_DEVICE
DEFINE_GUID(GUID_DEVINTERFACE_USB_HUB,
0xf18