- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC环境下 USB HID类说明
1、头文件包含,库文件链接
?在VC中开发HID应用程序时,需要包含setupapi.h和hidsdi.h,包含方式必须为extern C,如下所示:
extern C {// Declare the C libraries used#include setupapi.h??// Must link in setupapi.lib#include hidsdi.h???// Must link in hid.lib}然后在setting—Link—object/libary modules 中添加setupapi.lib hid.lib 两个库文件。
?2、Windows操作HID设备的API
API函数 DLL 功能 HidD_GetHidGuid Hid.dll 取得类别 SetupDiGetClassDevs Setupapi.dll 获取一个设备信息群,包含指定类的所有设备 SetupDiEnumDeviceInterfaces Setupapi.dll 获取信息群内一个设备的信息 SetupDiGetDeviceInterfaceDetail Setupapi.dll 获取设备路径 HidD_GetAttributes Hid.dll 获取厂商与产品,版本号 HidP_GetValueCaps Hid.dll 获取描述设备能力的结构 CreateFile Kernel32.dll 开启设备通信ReadFile Kernel32.dl 从设备读取一个报文 WriteFile Kernel32.dll 发送一个报文给设备 CloseHandle Kernel32.dll 释放CreateFile创建的资源 SetupDiDestroyDeviceInfoList Setupapi.dll 释放SetupDiGetClassDevs使用的资源 HidD_GetPreparsedData Hid.dll 获取保存设备能力信息的缓冲器的句柄 HidD_SetFeature Hid.dll 发送一个特征报文给设备 HidD_GetFeature Hid.dll 从设备获取特征报文 ? HidD_GetHidGuid
?void __stdcall HidD_GetHidGuid(? __out? LPGUID HidGuid?? ?//指针指向调用者分配的GUID的内存区域,通常返回HID设备的GUID);
?2.2 SetupDiGetClassDevs
HDEVINFO SetupDiGetClassDevs(? __in_opt? const GUID *ClassGuid,// 一个特定类别GUID的指针? __in_opt? PCTSTR Enumerator,?????//过滤梅举的内容? __in_opt? HWND hwndParent,????????//用于关联到集合成员中的用户接口的顶层窗口句柄? __in????? DWORD Flags???????????????//建立设备信息表的控制选项,DIGCF_PRESENT(当前存在的设备)DIGCF_ALLCLASSES(所有设备)DIGCF_PROFILE(当前硬件概况);
如成功,返回包含所有与指定参数匹配的已经安装设备信息句柄,否则返回INVALID_HANDLE_VALUE
? SetupDiEnumDeviceInterfaces
BOOL SetupDiEnumDeviceInterfaces(? __in????? HDEVINFO DeviceInfoSet,? //一个指向设备信息集合的句柄,包含设备接口返回信息,通常是SetupDiGetClassDevs的返回? __in_opt? PSP_DEVINFO_DATA DeviceInfoData,??//指向特定设备的SP_DEVINFO_DATA 类型的指针,? __in????? const GUID *InterfaceClassGuid, //指向制定设备接口类的GUID指针? __in????? DWORD MemberIndex,? //设备信息中接口列表的索引值(初始值为0)__out???? PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData //指向调用者分配的SP_DEVICE_INTERFACE_DATA类型的内存区域的指针,调用前必须先配置DeviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA)); 如成功,返回TRUE,否则返回FALSE,并可以调
文档评论(0)