我有 DEVINST,我需要设备路径

2023-12-13

我正在尝试打开属于复合设备一部分的 WinUSB 设备。我已使用 cfgmgr32 找到了正确的子设备,并有其 DEVINST 编号。为了使用 WinUSB 打开它,我需要首先调用 CreateFile,为此我需要设备路径。

设备路径如下所示:

\\\\?\\usb#vid_9999&pid_0102#3555303335351909000b0#{a5dcbf10-6530-11d2-901f-00c04fb951ed}

如何获取设备路径?


我建议看看从_devinst_and_guid 获取文件名函数是libusbp.

基本轮廓是:

  1. 确保您知道要查找的设备接口 GUID。这是您提供的文件名末尾括号中的内容。这通常来自设置 WinUSB 的 INF 文件,但也可以来自设备上的 MS 操作系统描述符。您可以在注册表中找到它。你必须将它打包成 Win32 APIGUID struct.
  2. Call SetupDiGetClassDevs(guid, NULL, NULL, DIGCF_DEVICEINTERFACE | DIGCF_PRESENT);获取支持该设备接口 GUID 的所有当前(已连接)设备的列表。
  3. Use SetupDiEnumDeviceInfo迭代列表,直到找到与已找到的 DEVINST 匹配的项目。
  4. Use SetupDiEnumDeviceInterfaces获取该项目的接口列表。应该只有一项,因为您已经指定了您感兴趣的设备接口 GUID。
  5. Use SetupDiGetDeviceInterfaceDetail to get SP_DEVICE_INTERFACE_DETAIL_DATA_A数据结构。
  6. 您要查找的文件名位于DevicePath该结构的成员。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我有 DEVINST,我需要设备路径 的相关文章

  • Android Studio 无法将 Nexus 7 识别为设备

    我在 Nexus 7 上运行我在 Android Studio 中开发的应用程序时遇到问题 在使用同一台平板电脑和计算机 运行 Windows 8 之前 我已成功使其正常工作 但自从我的笔记本电脑修好并且所有内容都被擦除后 我确信我的开发环
  • 三星 Android 手机从另一台设备上出现 USB 问题

    早上好 我有一部三星 Android 手机 我通过 USB 电缆将其连接到另一台设备 不是电脑 对于这种情况 我在 android 中启用了 USB 调试和开发人员模式 如果我使用另一台 Android 手机 它工作正常 另一台设备正在闪烁
  • 从 USB 可移动存储读取文件

    在我的应用程序中 我想从 USB 可移动存储读取文件 我有一个 txt 我想阅读它 void read UsbManager manager UsbManager getSystemService Context USB SERVICE H
  • 查找带有 USB 设备 VID/PID 的 /dev 条目

    我想制作一个程序来检测哪些 dev sd 条目链接到已知的 USB VID PID 对 你知道我如何获得 USB 记忆棒的 VID PID 吗 dev sd 您可以使用udevadm为了这 在输出中udevadm info q proper
  • 检测 Android 上的 USB 网络共享

    有没有什么方法可以 以编程方式 在您的活动 应用程序中知道用户已在其手机上启用 USB 网络共享 您还可以使用反射来访问用于设置 USB 网络共享的隐藏功能 这是我的代码 ConnectivityManager cm Connectivit
  • 如何检测Android平板电脑中充当USB Host的USB设备?

    我尝试在代码的帮助下开发一个示例应用程序开发者 android com http developer android com guide topics connectivity usb host html 我的代码看起来像这样 public
  • USB 控制传输能否保证交付?

    USB 2 0 指定 http www usb org developers docs usb20 docs 4 种传输类型 第 5 4 节传输类型 控制转移 同步传输 中断传输 批量转账 第 5 8 节规定批量转账提供 在带宽可用的基础上
  • 在c#中读取PVOID,我应该读取多少位?

    我正在读取 URB 类型的 USB 数据包 URB 标头定义于http msdn microsoft com en us library windows hardware ff540409 v vs 85 aspx http msdn mi
  • USB 传输数据

    我正在尝试通过 USB 发送和接收数据 我的设备 Acer Iconia A500 拥有连接到设备所需的一切 一切都很好并且工作正常 但是当我尝试发送和接收数据时 它的行为并不像预期的 这是我的代码 for this is the main
  • 如何在 OSX Catalina (10.15) 中使用 Wireshark 捕获 USB 流量

    我正在尝试让 Wireshark USB 捕获工作 显然 Catalina 之前的技巧就是调出界面 以便 Wireshark 可以看到它 https forums developer apple com thread 95380 https
  • adb 未检测到 micromax a111

    最近我购买了 micromax a111 Android 设备 我是安卓开发者 因此尝试使用该设备进行调试选项 但 adb 无法检测到该设备 我也更改了设置 但没有成功 如果有人有解决方案 请帮助我解决这个问题 micromax没有官方的P
  • 不支持混合类型

    请看一下下面的头文件 pragma once using namespace UsbLibrary ref class MissileLauncher public MissileLauncher void private Bytes us
  • OSX:如何从 IOUSBDeviceInterface 或位置 id 获取卷名称(或 bsd 名称)

    我正在尝试编写一个应用程序 将特定的 USB 字符串描述符 USB 大容量存储设备 与其卷或 bsd 名称相关联 因此 代码会遍历所有连接的 USB 设备 获取字符串描述符并从其中之一提取信息 我想获取这些 USB 设备的卷名 我找不到合适
  • Windows 8.1 上的 Pyusb - 没有可用的后端 - 如何安装 libusb?

    使用 pyinstaller 3 1 python 2 7 9 和 tkinter 尝试使用 pyusb 而不是 pyserial 但没有可用的后端 调查Windows 上的 Pyusb 没有可用的后端 https stackoverflo
  • 我无法找到 libftdi 的 mpsse (SPI) 模式的示例代码

    这不是一个家庭作业问题 尽管这是一个工作问题 几个月前 我刚写完一份规范 老板就会把它外包出去 因为资金紧张 所以我正在尝试自己做这件事 我是一个很弱的 C 编码员 如果 gcc 能输出一些运行时不会出现段错误的东西 或者有时根本没有任何东
  • 使用 STM32 USB 设备库将闪存作为大容量存储设备

    我的板上有这个闪存IC 它连接到我的STM32F04 ARM处理器 处理器的USB端口可供用户使用 我希望我的闪存在通过 USB 连接到 PC 时被检测为存储设备 作为第一步 我在程序中将 USB 类定义为 MSC 效果很好 因为当我将主板
  • USB接口条码扫描器

    不完全是一个编程问题 但很接近 无论如何我都会试试运气 The 键盘楔子 扫码机插入 读者之间的翻译装置 和键盘 数据发送通过 楔形看起来就像是被输入的 电脑 而键盘 本身仍保持完整功能 因为电脑使用键盘 楔子无法区分 在输入的数据之间 扫
  • 如何设置USB连接模式?

    我正在编写一个应用程序 该应用程序应该将数据转储到 SD 卡上 然后在 PC 上编写另一个应用程序 当设备连接到 PC 时 在光盘驱动器模式下 该应用程序应该读取数据 在我的 HTC Legend 上 有一个对话框可供选择 仅充电 HTC
  • 如何将 Android USB 连接模式更改为仅充电? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 如何使用 python / pywinusb 将 hid 数据发送到设备?

    我正在尝试使用 pywinusb 将输出报告发送到 pic18f4550 该设备可以接收数据 我已经使用 C 应用程序对其进行了测试 效果很好 另外 我可以使用 pywinusb 从设备读取数据 但我在尝试发送数据时遇到问题 这是我正在运行

随机推荐

  • Firebase 刷新令牌

    使用方法 FIRInstanceID tokenWithAuthorizedEntity scope options handler 我不太确定参数需要什么 授权实体和行动是什么 我还要将 APNS 令牌从苹果传递给该方法吗 AUTHORI
  • C++ 中的按键事件

    我目前正在使用GetAsyncKeyState 检测 Keydown 事件 但是当您按住该键时 这些事件将重复 有什么简单的方法可以阻止事件再次发生 Example 如果我按住键i在我的键盘上一段时间 我会得到这样的输出 iiiiiiiii
  • 使用java将日期转换为AEST

    我想使用 Java 将以下日期转换为 AEST 格式 2018 01 08T02 10 24 000 0000w 下面是我用来转换的代码 DateTimeFormatter dtf DateTimeFormatter ofPattern y
  • 添加facet_grid面板手段作为文本和hline

    我有一个看起来像这样的数据框 gt head df DGene JGene cdr3 len Sum 1 IGHD1 IGHJ1 0 22 2 IGHD1 IGHJ1 1 11 3 IGHD1 IGHJ1 2 16 4 IGHD1 IGHJ
  • 在 Azure Cosmos DB Graph API 中添加或获取顶点

    使用 Gremlin 我可以通过发出以下命令在 Azure Cosmos DB 图中创建顶点 g addV the label property id the id 然后使用找到它 g V the label has id the id 但
  • 无法在 XNA 中隐式转换类型

    我有一个弹跳球 我试图让它弹跳一次时 速度会变得更高 在我的球课上 我有一个float speed 我初始化了它 public ball float speed speed 1f 我有一个球运动的方法 如下所示 public void Ba
  • Firebase 注销不起作用

    我已经开始使用 Firebase 但我的体验很糟糕 我无法注销用户 我尝试了不同的方法 花了 4 天的时间来弄清楚如何注销用户 但没有明确的选项 我想完全指出用户 以便他们可以选择另一个 gmail 帐户 我试过下面的代码 Firebase
  • AWS Lex - 默认插槽类型没有限制

    在 AWS Lex 中 我使用默认的 AMAZON Country 作为槽类型 但是 当我与测试机器人交互时 我可以输入任何值 例如 我不知道 并且当我检查响应时 JSON 表示 国家 地区 的值为 我不知道 槽类型的目的是将答案限制为现有
  • 在 Tensorflow 数据集 api 中:如何使用 padded_batch 以便在不指定 pad 数量的情况下使 pad 具有特定值

    如果您不指定padding values then padded batch将自动填充 0 但是 如果您想要不同的值 例如 1 则不能只设置padded batch 1 您需要为每个需要填充的槽输入一个序列 但是 我正在使用一个数据集 该数
  • C# Regex 使用函数进行匹配和替换

  • 为什么 Google Fit 步数不同

    我使用 Sensor API 来计算步数 我发现它与 Google Fit 应用程序不同 Google Fit 应用程序是否使用 Sensor API 其他功能 代码片段 Fitness SensorsApi add mGoogleApiF
  • 如何在输入文本字段中仅允许阿拉伯字符?

    我已经在这里搜索并找到了与这篇文章相关的类似帖子 但我还没有找到解决方案 我试过这个 text hello echo is arabic preg match p Arabic u text 我添加了 unicode 标志 但如果我添加任何
  • 即使对于简单的整数值,if 语句也始终返回 true

    我面临的问题是 对于每个值 我的 If 语句始终返回 true var radioValue parseInt input name packageRadio checked val alert radioValue 1000 500 1
  • 从 UIImagePickerController 获取 NSURL

    我试图获取通过 uiimagePickerController 选择的图像的文件路径 以便将文件上传到 Firebase 存储 func imagePickerController picker UIImagePickerControlle
  • 寻找最后一个符合条件的单元格(水平)

    我试图在 Google Sheets 中找到一种方法来根据某些条件返回最后一个单元格 我已包含下表 Jan Feb March April LATEST SALE group 1 sale sale no sale sale April g
  • 适用于 Java 和 Javascript 的兼容 AES 算法

    我需要使用 AES 算法加密 Java 应用程序中的一些值 并在应用程序的 Javascript 模块中解密相同的值 我在互联网上看到了一些示例 但兼容性似乎存在一些差异 就像下面的问题 javascript中的AES加密和java中的解密
  • 将绝对位置转换为相对位置

    是否可以将 DIV 位置从绝对位置更改为相对位置 以及从相对位置更改为绝对位置 DIV 应保留在同一位置 因为评论中的格式不起作用 我将在这里发布解决方案 object css position absolute top dy left d
  • Web 服务器的 .cgi 问题

    The code usr bin env python import MySQLdb print Content Type text html print print print print h1 Books h1 print ul con
  • sparql:为每个节点随机选择一个连接

    我有以下数据
  • 我有 DEVINST,我需要设备路径

    我正在尝试打开属于复合设备一部分的 WinUSB 设备 我已使用 cfgmgr32 找到了正确的子设备 并有其 DEVINST 编号 为了使用 WinUSB 打开它 我需要首先调用 CreateFile 为此我需要设备路径 设备路径如下所示