wwwwillis
驱动牛犊
驱动牛犊
  • 注册日期2004-06-21
  • 最后登录2008-09-19
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望15点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:2376回复:8

求教USB设备检测问题?

楼主#
更多 发布于:2004-10-28 09:36
各位大侠:
  现在我有一个USB设备可接大硬盘,怎样用编程实现这个设备已
连接上,并且连接上时,怎样得到它的盘符?急!!!!!
willis
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-10-28 12:12
通过PID、VID等得到相应符号连接
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
lxh_phr
驱动小牛
驱动小牛
  • 注册日期2001-05-14
  • 最后登录2023-10-18
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望156点
  • 贡献值0点
  • 好评度30点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-10-28 18:15
WM_DEVICECHANGE消息
lxh_zz
wwwwillis
驱动牛犊
驱动牛犊
  • 注册日期2004-06-21
  • 最后登录2008-09-19
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望15点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-10-29 09:41
怎样通过PID,VID连接什么符号?
我的程序是首先要判断USB接口的连接设备是否连接才能往下执行。

现在我在win2000上运行,用SetupDiGetClassDevs(),SetupDiEnumDeviceInterfaces(),SetupDiGetInterfaceDeviceDetail(),CreateFile(),可判断设备连接,但是在win98上运行就提示设备没有连上,(我的设备本身连上了,可以访问),这是为什么?
willis
wwwwillis
驱动牛犊
驱动牛犊
  • 注册日期2004-06-21
  • 最后登录2008-09-19
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望15点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-10-29 09:50
设备类在win2000和win98上的GUID不一样吗?怎样用工具在win98,win2000,winxp上得到GUID? 因为我是用GUID来判断检测设备的?急!
willis
qiweixue
驱动小牛
驱动小牛
  • 注册日期2004-07-21
  • 最后登录2011-12-19
  • 粉丝0
  • 关注0
  • 积分1006分
  • 威望274点
  • 贡献值0点
  • 好评度268点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2004-10-30 18:51
继续goOn~
~~~~~~~~~~~
混个脸熟~~~
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-01 09:35
处理WM_DEVICECHANGE消息,系统中新加入一个设备都会产生该消息。
对消息进行判断,下面是一个简单的消息处理函数:
void CMainFrame::OnDeviceChange(WPARAM wParam, LPARAM lParam)
{
PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)lParam;

if(wParam == DBT_DEVICEARRIVAL && lpdb -> dbch_devicetype == DBT_DEVTYP_VOLUME)
{
//说明新加入的设备是一个磁盘设备
//分析lpdbv->dbcv_unitmask可以得到新加入的USB磁盘的盘符
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;
}

}
在交流中学习。。。
wwwwillis
驱动牛犊
驱动牛犊
  • 注册日期2004-06-21
  • 最后登录2008-09-19
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望15点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-11-02 18:01
谢谢楼主的回答,
我试了你的做法,你的想法先要执行程序,再插上设备,才有反应,但是我先插上设备,然后再执行程序,按检测按钮提示没有设备。
我想实现:当我的设备插上后,多次按检测按钮,每次能检测设备是否连上?
willis
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-11-08 09:57
谢谢楼主的回答,
我试了你的做法,你的想法先要执行程序,再插上设备,才有反应,但是我先插上设备,然后再执行程序,按检测按钮提示没有设备。
我想实现:当我的设备插上后,多次按检测按钮,每次能检测设备是否连上?


那你就在设备连接之后,通过程序检查该类型的设备信息,就想在设备管理器中查看一样,如果该设备状态正常,就说明连接没有问题。具体的程序实现可以查看DDK里面的例子DevCon,应该可以解决你的问题。呵呵
在交流中学习。。。
游客

返回顶部