USB设备的基本操作涉及USB存储设备的插入检测及写入文件,同时可以在写入结束后自动弹出,下面介绍自己的实现方法。
(1)注册设备。
在检测之前需要对检测的设备进行注册。具体的代码如下:
//首先注册设备 void CUSBTestDlg::OnBtnRegister() {
// TODO: Add your control notification handler code here
static const GUID GUID_DEVINTERFACE_LSIT[] = {
//GUID_DEVINTERFACE_USB_DEVICE {0xA5DCBF10,0x6530,0x11D2,{0x90,0x1F,0x00,0xC0,0x4F,0xB9,0x51,0xED}}, //GUID_DEVINTERFACE_DISK {0X53F56307,0XB6BF,0X11D0,{0X94,0XF2,0X00,0XA0,0XC9,0X1E,0XFB,0X8B}}, //GUID_DEVINTERFACE_HID {0X4D1E55B2,0XF16F,0X11CF,{0X88,0XCB,0X00,0X11,0X11,0X00,0X00,0X30}}, //GUID_NDIS_LAN_CLASS {0XAD498944,0X762F,0X11D0,{0X8D,0XCB,0X00,0X00,0X4F,0XC3,0X35,0X8C}} }; //注册插拔事件 HDEVNOTIFY hDevNotify; DEV_BROADCAST_DEVICEINTERFACE NotifacationFiler; ZeroMemory(&NotifacationFiler,sizeof(DEV_BROADCAST_DEVICEINTERFACE)); NotifacationFiler.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE); NotifacationFiler.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE; for(int i=0;i<sizeof(GUID_DEVINTERFACE_LSIT)/sizeof(GUID);i++) {
NotifacationFiler.dbcc_classguid = GUID_DEVINTERFACE_LSIT[i];//GetCurrentUSBGUID();//m_usb->GetDriverG