CreateFile打开usb设备问题?

sanshiling 2013-07-01 10:51:13
completeDeviceName 为 “\\?\usb#vid_5345&pid_1234#5&33cee4ba&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed}\PIPE01”
dnw中的打开usb设备的代码:
    h = CreateFile(completeDeviceName,
GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_WRITE | FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
0,
NULL);

问题描述:在本人常用的电脑1(Xp系统)上不管怎么运行都没有问题,然后换一台电脑2(Xp系统)装上驱动(和电脑1驱动一致)后运行,偶尔成功偶尔报错,错误就发生在CreateFile处,GetLastError查看错误码为1450;请问这是什么原因造成的,如何解决???(补充:程序是在电脑1上编译并运行release出来的dnw.exe,在电脑2上只是运行dnw.exe。)
...全文
915 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
alang512 2013-08-14
  • 打赏
  • 举报
回复
hHandle=CreateFile( //打开 启动设备
strDevicePath,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL ); // 这是我打开一个HID设备的方法
alang512 2013-08-14
  • 打赏
  • 举报
回复
〖1450〗-系统资源不足,无法完成请求的服务
ludson 2013-08-10
  • 打赏
  • 举报
回复
completeDeviceName的标识不一定在每台电脑上是一致的,你需要确认一下
sanshiling 2013-07-01
  • 打赏
  • 举报
回复
这个我知道,主要是什么原因引起的,和如何解决呢
oyljerry 2013-07-01
  • 打赏
  • 举报
回复
...(1450)-系统资源不足,无法完成请求的服务
现在USB设备却很多,因此对USB设备的查找与读写就必不可少了。但是能找到关于USB读写的资料很少。这里使用VC++示范了一些获得USB的信息的方法。 一、枚举USB设备   通过枚举USB控制器->枚举此控制器上的USB HUB->枚举HUB的各个端口->获得设备信息。 枚举控制器: wsprintf(HCName, "\\\\.\\HCD%d", HCNum); hHCDev = CreateFile(HCName, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);   计算机上的USB主控制器以HCD1,HCD2等命名。通过控制器名称,使用CCreateFile 打开它。使用DeviceIoControl即可得到其驱动程序名,以及与它连接的HUB的名称。用CCreateFile打开HUB,获得连接信息。再枚举HUB的各个端口即可获得连接的设备信息。 二、枚举HID设备   HID设备是微软定义的标准人机接口规范。比如USB鼠标,USB游戏手柄等。不用查找具体设备的GUID,使用API HidD_GetHidGuid(&guidHID)即可得到GUID。有了GUID通过API SetupDiEnumDeviceInterfaces可获得是否有设备连接。如果此类设备连接通过SetupDiGetDeviceInterfaceDetail获得它的设备路径信息。使用CCreateFile 打开它,通过HidD_GetAttributes获得其基本属性信息。使用DeviceIoControl可以获得更详细的属性。在本代码中如果计算机上插有USB游戏手柄,可获得其信息。但不知道为什么xp下却不能获得USB鼠标的信息。 三 枚举U盘   先用GetDriveType API获得设备的类型,若类型为REMOVABLE(当然有些大容量U盘可能报告为FIXED,那就需要其他方法来确定了),即可能是U盘。用CCreateFile 打开之后,再用IOCTL_STORAGE_QUERY_PROPERTY为参数的DeviceIoControl来获得其属性。 四、结束语   示例工程在winxp+xpDDK+VC6下编译通过。USB设备种类比较多,也比较特殊,不同厂商的硬件不同,控制软件也不尽相同(我想主要是ICTL码不同,也不容易查到)。使得访问USB口的设备不象串口并口那么方便。这个例程只是展示了访问的基本方法。其中还有些问题还没有解决,发出来希望大家解决之后能通知我或者发表出来。 参考了USBPort,USBview等代码,一并致谢。
书名:《Visual Basic.NET自动化系统监控--RS-232串行通信》(清华大学出版社.范逸之.廖锦棋)。PDF格式扫描版,全书共分为9章,共475页。 介绍 Visual Basic .NET为广大Visual Basic用户打开了通往程序设计殿堂的大门。本书具体内容包括:串行通信的相关硬件概念、Visual Basic .NET的常用组件、Win32 API的运用、串行通信的传输方式、串行通信的类别、串行数据的处理方式、仪器设备上的串行通信、分布式的串行通信。本书不仅介绍了串行通信的概念,还详细解析了在窗口环境中设计通信程序的过程,并给出一些技巧与注意事项。 本书可供自动控制和通信领域的开发人员和其他相关技术人员使用或参考。 目录 第1章 基本概念 1 1.1 通信 1 1.1.1 数据传送 1 1.1.2 通信的种类 2 1.2 串行通信 3 1.2.1 RS-232串行通信 3 1.2.2 RS-485串行通信 5 1.2.3 USB接口 7 1.2.4 IEEE 1394 9 1.3 串行通信端口 9 1.3.1 信号定义 10 1.3.2 ASCII码对照表 11 1.3.3 针脚意义及方向 12 1.3.4 通信参数 16 1.4 模式及流量 19 1.4.1 工作模式 19 1.4.2 硬件握手 20 1.4.3 软件握手 22 1.5 接线和错误预防 24 1.5.1 接线方法 24 1.5.2 错误预防 25 1.5.3 CRC程序解析 27 常识问答 28 本章习题 28 第2章 Visual Basic .NET及 常用组件简介 29 2.1 Windows程序概念简述 29 2.1.1 对象的概念 29 2.1.2 界面 31 2.1.3 使用Visual Basic .NET 开发系统 33 2.1.4 Visual Basic .NET的 环境模式 36 2.1.5 项目开发的步骤 37 2.1.6 Visual Basic .NET与 操作系统的关系 38 2.2 常用组件介绍 39 2.2.1 Label组件 39 2.2.2 Button组件 40 2.2.3 Timer组件 42 2.2.4 PictureBox组件 43 2.2.5 RadioButton组件 43 2.2.6 GroupBox组件 44 2.2.7 ListBox组件 45 2.2.8 TextBox组件 45 2.3 程序简述 46 2.3.1 解决方案的组成 46 2.3.2 数据与运算符 48 2.3.3 命名空间 51 2.3.4 语法 52 2.3.5 基础的信息对话框 55 2.3.6 字符串类型及其处理函数 59 2.4 事件处理 66 2.4.1 事件的种类 66 2.4.2 事件中的程序代码 69 常识问答 71 本章习题 71 第3章 串行通信程序及API 72 3.1 引用Windows API 72 3.1.1 程序与硬件 73 3.1.2 Declare声明语句 73 3.1.3 DllImport声明方式 76 3.1.4 常数声明 77 3.1.5 枚举声明 77 3.1.6 结构声明 79 3.2 串行通信的Windows API简述 80 3.2.1 串行通信相关函数 80 3.2.2 CreateFile/CloseHandle (打开/关闭通信端口) 81 3.2.3 GetCommState (取得通信端口参数) 82 3.2.4 SetCommState (设置通信端口参数) 84 3.2.5 WriteFile (输出数据至通信端口) 85 3.2.6 ReadFile (自通信端口读取数据) 85 3.2.7 ClearCommError (清除通信端口错误状况) 85 3.2.8 PurgeComm(清除通信端口) 87 3.2.9 EscapeCommFunction (要求特定控制工作) 87 3.2.10 SetCommMask(信息屏蔽) 88 3.2.11 WaitCommEvent (检测事件是否已发生) 89 3.2.12 GetCommModemStatus (电位状态检测) 89 3.2.13 使用流程 90 3.2.14 检查资源设置 90 3.3 通信测试 92 3.3.1 通信步骤 92 3.3.2 回路测试 92 3.3.3 串行端口的数字 输出控制 113 3.3.4 串行端口的数字 输入检测 120 3.4 自动与事件 126 3.4.1 自动读取传入的字符串 126 3.4.2 通信事件 132 3.4.3 创建多线程 140 3.4.4 定时器与DoEvents() 151 常识问答 154 本章习题 154 第4章 串行通信中的字符与字节 155 4.1 字符与字节 155 4.1.1 字符和字节的差别 155 4.1.2 Visual Basic .NET中的 字符串类型 156 4.1.3 中英文字符串长度计算 158 4.1.4 字符编码内容 163 4.2 字节数据的送收 168 4.2.1 字节类型、声明与送收 168 4.2.2 动态数组 176 常识问答 182 本章习题 182 第5章 串行通信类的创建及使用 183 5.1 类的基础 183 5.1.1 类的组成 183 5.1.2 类成员 185 5.1.3 类创建的步骤 188 5.2 通信类的创建 190 5.2.1 类分析 190 5.2.2 枚举值、结构、常数、 Win32 API 的声明 191 5.2.3 属性创建 197 5.2.4 方法的考虑 206 5.2.5 事件的创建 209 5.2.6 整合类 213 5.3 使用串行通信类 232 5.3.1 类测试——数据收发 232 5.3.2 类测试——数字输出 237 5.3.3 类测试——数字输入 242 5.3.4 类事件测试——自动 读取数据 246 5.4 类库 250 5.4.1 类库项目的创建 250 5.4.2 类库的程序开发 252 5.4.3 类库的生成 254 5.4.4 类库的使用 254 常识问答 259 本章习题 260 第6章 串行数据的处理 261 6.1 命令字符串 261 6.1.1 沟通方式 261 6.1.2 CheckSum的使用 264 6.1.3 CheckSum的讨论 271 6.2 PS232实验仪器简介 275 6.2.1 PS232功能简介 275 6.2.2 PS232上的接口定义 276 6.2.3 串行仪控的实习 277 6.2.4 通信参数的设置 278 6.3 客户端的创建 278 6.3.1 TextBox组件与数据显示 279 6.3.2 状态灯号与数据显示 285 6.3.3 Visual Basic .NET中 的绘图 292 6.3.4 以曲线图表示数据 298 6.3.5 使用事件进行数据接收 305 6.3.6 PaintBox与数据 显示——字节数据 310 6.4 数据的存储及打印 319 6.4.1 数据存取 319 6.4.2 PS232数据及文件存取 322 6.4.3 打印及预览 331 6.4.4 打印及预览程序开发 332 常识问答 343 本章习题 344 第7章 其他串行通信组件 及串行端口 345 7.1 Windows的终端机 345 7.1.1 选择与使用终端机 345 7.1.2 与设备的连接测试 347 7.2 PComm Pro软件 348 7.2.1 PComm Pro的终端机 349 7.2.2 PComm Pro的串行 端口性能测试 351 7.2.3 PComm Pro的数据监视器 352 7.3 增加串行通信端口 355 7.3.1 MOXA C168多端口卡 355 7.3.2 USB转RS-232转接器 358 第8章 仪器设备上的串行通信 360 8.1 噪声计 360 8.1.1 仪器连接 360 8.1.2 噪声计简介 361 8.1.3 命令格式 362 8.1.4 沟通项目的设计 363 8.1.5 噪声读值的采集 370 8.2 电功率计 375 8.2.1 电功率计简介 375 8.2.2 接口及命令格式讨论 376 8.2.3 测试项目的创建 379 8.3 测量用放大器 390 8.3.1 BK-2525振动计简介 390 8.3.2 RS-232接口及命令 格式说明 391 8.3.3 项目的创建 395 8.4 电源供应器 400 8.4.1 电源供应器简介 400 8.4.2 接口及命令格式 402 8.4.3 控制项目的创建 404 8.5 温度记录器 409 8.5.1 温度记录器简介 409 8.5.2 接口及命令格式 411 8.5.3 沟通项目的创建 414 8.6 转速计 424 8.6.1 转速计介绍 424 8.6.2 接口及命令格式 425 8.6.3 项目程序的创建 426 8.7 条形码识别器 431 8.7.1 识别器设备介绍 432 8.7.2 界面及格式说明 433 8.7.3 项目程序的创建 434 8.8 测量电表 438 8.8.1 电表设备简介 438 8.8.2 接口及命令格式 439 8.8.3 项目程序的创建 443 8.9 波形发生器 449 8.9.1 设备介绍 449 8.9.2 接口及命令格式 450 8.9.3 项目程序的创建 453 常识问答 459 本章习题 460 第9章 分布式监控及网络化简介 461 9.1 分布式监控 461 9.1.1 何谓分布式监控 461 9.1.2 多模块的网络系统 462 9.1.3 RS-232与RS-485的转换 464 9.2 命令与格式 465 9.2.1 格式讨论 465 9.2.2 送收程序 468 9.2.3 取得模块的配置 468 9.3 网络化的串行通信 473 9.3.1 网络化的连接 473 9.3.2 工业上的网络连接 474 常识问答 475 本章习题 476 附录 ASCII码 477 参考文献 478

2,640

社区成员

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

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