设备插入
设备拨出
设备准备好

都会发生WM_DEVICECHANGE消息,
使用的时候需要判断wParam的值。
详细请参考MSDN。

解决方案 »

  1.   

    应该与你注册消息时选择的条件有关. U盘插入时可能引起USB和文件系统的改动吧? 是不是你收到很多消息的原因? 猜想
      

  2.   

    DBT_DEVICEARRIVAL
    DBT_DEVNODES_CHANGED
    …………
    当插入USB的时候WM_DEVICECHANGE会发生很多次
      

  3.   

    当你USB插入的时候会收到WM_DEVICECHANGE消息 ,其WPARAM为DBT_DEVICEARRIVAL,另外还会接受到六个DBT_DEVNODES_CHANGED ,此消息表示虚拟设备的插入和删除,第一次接受DBT_DEVICEARRIVAL,表示设备插入成功,后面的DBT_DEVNODES_CHANGED表示文件系统,驱动设备更新完毕.