OnDeviceChange问题

cokeliu 2013-10-29 12:02:39
我在一个dll中做了一个USB设备拔插侦查程序,现在可以收到消息并执行以下程序
LRESULT OnDeviceChange(WPARAM nEventType, LPARAM dwData)//设备状态改变时的处理函数
{
PDEV_BROADCAST_HDR pHdr = (PDEV_BROADCAST_HDR)dwData;
PDEV_BROADCAST_DEVICEINTERFACE pDevInf;

int nLenDevId;
int idx;
CString szDevId;
CString szClass;
CString szLog;

CString id,id2,id3,id4;
CString Name;

if(!(DBT_DEVICEARRIVAL == nEventType || DBT_DEVICEREMOVECOMPLETE == nEventType))
return S_FALSE;

switch( pHdr->dbch_devicetype)
{
case DBT_DEVTYP_DEVICEINTERFACE:
pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr;
/// ASSERT(lstrlen(pDevInf->dbcc_name) > 4);
szDevId = pDevInf->dbcc_name+4;

问题是现在得到guid等正常,但得到的pDevInf->dbcc_name只是一个"\". 我用同样的软件代码在其他基于对话框项目中能正常得到USB设备的名称. 请问是怎么回事情?
...全文
69 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧