社区
硬件/系统
帖子详情
怎么侦测USB端口上有设备插拔?
sayo
2006-06-05 08:13:06
rt
...全文
358
3
打赏
收藏
怎么侦测USB端口上有设备插拔?
rt
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
playfilemaker
2006-06-08
打赏
举报
回复
typedef void (__stdcall *FUNC_TYPE_HIDGUID) (
OUT LPGUID HidGuid
);
FUNC_TYPE_HIDGUID _HidD_GetHidGuid = NULL;
// USB version GUID
static GUID GUID_CLASS_ITOKEN2 =
{0x171638f7, 0x1ead, 0x4873, {0xba, 0x98, 0xc9, 0x66, 0xab, 0xcf, 0x1, 0x42}};
static GUID GUID_CLASS_ITOKEN2_HID;
BOOL bRegisted = FALSE;
typedef PVOID HDEVNOTIFY;
HDEVNOTIFY hDevNotify1 = NULL;
HDEVNOTIFY hDevNotify2 = NULL;
void CSample_13Dlg::OnRegister()
{
// TODO: Add your control notification handler code here
HWND hWnd;
// HDEVNOTIFY hDevNotify = NULL;
DEV_BROADCAST_DEVICEINTERFACE dbf;
BOOL bRes;
if (_HidD_GetHidGuid == NULL)
{
HINSTANCE hMod = LoadLibrary("hid.dll");
_HidD_GetHidGuid = (FUNC_TYPE_HIDGUID)GetProcAddress(hMod, "HidD_GetHidGuid");
ASSERT(_HidD_GetHidGuid != NULL);
// Get HID device GUID
_HidD_GetHidGuid(&GUID_CLASS_ITOKEN2_HID);
FreeLibrary(hMod);
}
if (!bRegisted) // if not registered
{
hWnd = this->m_hWnd;
// Register ITOKEN2 device notification
memset(&dbf, 0x00, sizeof(dbf));
dbf.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
dbf.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
dbf.dbcc_classguid = GUID_CLASS_ITOKEN2;
hDevNotify2 = RegisterDeviceNotification( hWnd,
&dbf,
DEVICE_NOTIFY_WINDOW_HANDLE
);
ASSERT(hDevNotify2 != NULL);
// Register ITOKEN2 HID device notification
memset(&dbf, 0x00, sizeof(dbf));
dbf.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
dbf.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
dbf.dbcc_classguid = GUID_CLASS_ITOKEN2_HID;
hDevNotify1 = RegisterDeviceNotification( hWnd,
&dbf,
DEVICE_NOTIFY_WINDOW_HANDLE
);
ASSERT(hDevNotify1 != NULL);
GetDlgItem(IDC_REGISTER)->SetWindowText("Unregister");
bRegisted = TRUE;
}
else
{
if (hDevNotify1) // Unregister ITOKEN2 device notification
{
bRes = UnregisterDeviceNotification(hDevNotify1);
ASSERT(bRes);
}
if (hDevNotify2) // Unregister ITOKEN2 HID device notification
{
bRes = UnregisterDeviceNotification(hDevNotify2);
ASSERT(bRes);
}
GetDlgItem(IDC_REGISTER)->SetWindowText("register");
bRegisted = FALSE;
}
}
sayo
2006-06-06
打赏
举报
回复
我想RegisterDeviceNotification中参数DEV_BROADCAST_DEVICEINTERFACE结构体的GUID dbcc_classguid;为设备的GUID,填什么参数啊?
Snow_Ice11111
2006-06-05
打赏
举报
回复
WM_DEVICECHANGLE消息,nEventType为DBT_DEVICEARRIVAL且dwData = 7时就是U盘连接事件(没弄错的话)
----------------------------------------------------------
二叉树中的红黑树、B树,B+树个人小结
1. 红黑树 1.1 概念 具有以下几种性质的树被称为红黑树: 结点只有两种颜色,黑色或者红色; 根结点一定是黑色 叶子结点为黑色,其中叶子结点包括(NIL:表示无值的点) 每个红色色结点的 两个结点为黑色 从任一结点到其自身的叶子结点所有的简单路径包含相同数目的黑色结点 由性质5可以推出 如果一个结点存在黑色子结点,那么该结点肯定有两个子结点。 下图就是一个红黑树: 红黑树是一种平衡二叉查找树的变体,它的左右子树高差有可能大于 1,所以红黑树不是严格意义上的平衡二叉树(AVL),但对之进行平衡的代价
动画演示!红黑树解析
红黑树动图解析 一、啥是红黑树? 红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。因此想要弄清楚红黑树,我们需要先解决几个问题: 二叉查找树是什么? 为什么会出现红黑树? 二、剖析二叉查找树 二叉查找树特性 二叉查找树(Binary Search Tree)是一颗二叉树,简称BST。就像我们说int都是整数一样,BST这一种二叉树需要满足如下三个特性: 某节点的左子树节点值仅包含小于该节点值 某节点的右子树节点值仅包含大于该
红黑树
红黑树 从 234 树 到 红黑树:https://blog.csdn.net/asdfsadfasdfsa/article/details/86500552 定义 2-3-4 树和红黑树是完全等价的,由于绝大多数编程语言直接实现2-3-4树会非常繁琐,所以一般是通过实现红黑树来实现替代2-3-4树,而红黑树本也同样保证在O(lgn)的时间内完成查找、插入和删除操作。 红黑树是每个节点都带有颜色属...
红黑树小结
红黑树是一种常用的数据结构,例如: Java 的TreeMap,TreeSet,HashMap,HashSet Linux 的进程调度 Nginx 的timer管理 红黑树可以类比 4 阶 B 树去分析,下面简述一下 B 树的性质 一、B 树 下图就是一个 4 阶 B 树 m 阶 B 树有如下性质: ...
红黑树解析
写在前面:我是「且听风吟」,目前是某上市游戏公司的大数据开发工程师,热爱大数据开源技术,喜欢分享自己的所学所悟,现阶段正在从头梳理大数据体系的知识,以后将会把时间重点放在Spark和Flink上面。 如果你也对大数据感兴趣,希望在这个行业一展拳脚。欢迎关注我,我们一起努力,一起学习。博客地址:https://ropledata.blog.csdn.net 博客的名字来源于:且听风吟,静待花开。也符合我对技术的看法,想要真正掌握一门技术就需要厚积薄发的毅力,同时保持乐观的心态。 你只管努力,剩下的交给.
硬件/系统
2,644
社区成员
17,229
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章