首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Swift中获取已确定USB的VID和PID

在Swift中获取已确定USB的VID和PID,可以通过使用IOKit框架来实现。IOKit是苹果操作系统的一个框架,用于与硬件设备进行交互。

以下是在Swift中获取已确定USB的VID和PID的步骤:

  1. 导入IOKit框架:import IOKit import IOKit.usb
  2. 创建一个IOUSBDevice对象:let usbDevice = IOUSBDevice()
  3. 获取USB设备的迭代器:let usbIterator = IOIterator() let matchingDict = IOServiceMatching(kIOUSBDeviceClassName) let result = IOServiceGetMatchingServices(kIOMasterPortDefault, matchingDict, &usbIterator)
  4. 遍历USB设备迭代器,查找指定的VID和PID:var usbService: io_object_t while case usbService = IOIteratorNext(usbIterator), usbService != 0 { let usbDevice = usbService let vid = getDeviceProperty(usbDevice, kUSBVendorID) let pid = getDeviceProperty(usbDevice, kUSBProductID) if vid == desiredVID && pid == desiredPID { // 找到了指定的USB设备 break } // 释放资源 IOObjectRelease(usbService) }
  5. 获取USB设备的属性:func getDeviceProperty(_ device: io_object_t, _ property: String) -> Int { var value: Int32 = 0 let propertyCFString = property as CFString let propertyAsCFString = Unmanaged.passUnretained(propertyCFString).toOpaque() let propertyAsCFStringPtr = UnsafeMutableRawPointer(propertyAsCFString) if IORegistryEntryGetProperty(device, propertyAsCFStringPtr, &value) != KERN_SUCCESS { // 获取属性失败 return 0 } return Int(value) }

请注意,上述代码仅为示例,可能需要根据实际情况进行适当的修改和调整。

在Swift中获取已确定USB的VID和PID的应用场景包括但不限于:

  • USB设备的自动识别和配置
  • 与特定USB设备进行通信和交互
  • USB设备的监控和管理

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用于监控USB设备连接事件取证工具

断开连接”事件)。...取决于发行版本) 来构建USB事件历史表格,其中可能包含内容有:“连接”(日期时间),“User”,“VID”(供应商ID),“PID”(产品ID),“Product”,“制造商”,“序列号”,...)USB设备,这些设备出现在历史记录但不会出现在auth.json; 当使用-s标志安装时创建加密存储(7zip存档)以在crontab调度程序帮助下自动备份积累USB事件; 根据特定USB设备...”,“VID”,“PID”,“Disconnected”表(-t,--table) “序列号”列(-c COLUMN [COLUMN],--column COLUMN [COLUMN])按日期过滤从外部文件获取日志...)PID(--pid PID)搜索特定USB设备详细信息: $ usbrip ids search --vid 0781 --pid 5580 下载最新版本usb_ids/usb.ids数据库(源码可在此处查看

2.2K30

USB 设备PID-Product ID,VID-Vendor ID

根据USB规范规定,所有的USB设备都有供应商ID(VID产品识别码(PID),主机通过不同VIDPID来区别不同设备,VIDPID都是两个字节长,其中,供应商ID(VID)由供应商向USB...VIDPID通常情况下有两种存储方式,第一种是主控生产商VIDPID,存储在主控bootcode;第二种是设备生产商VIDPID,该VIDPID存储在主控外部非易失性存储设备(EEPROM...或Flash)设备固件,当USB设备连接主机时,如果固件中有设备生产商VIDPID,会将该VIDPID报告给主机,而忽略主控生产商VIDPID。...由于VIDPID重复并不会对产品使用带来严重影响,很多USB设备生产商(山寨厂居多)为了方便,并不会向USB执行论坛申请自己VID,而是依然沿用主控生产商VID或随便向产品写入VIDPID;同时...,正规厂家只需要申请VIDPID由厂家自行确定,所以存在相同型号产品,可能采用了不同主控(商业需要,很正常),而他们PID是一样,基于上述原因通过VIDPID就不能准确识别USB设备主控型号

2.3K80

USBVID,PID

一、VIDPID 根据USB规范规定,所有的USB设备都有供应商ID(VID产品识别码(PID),主机通过不同VIDPID来区别不同设备,VIDPID都是两个字节长,其中,供应商ID...VIDPID通常情况下有两种存储方式,第一种是主控生产商VIDPID,存储在主控bootcode;第二种是设备生产商VIDPID,该VIDPID存储在主控外部非易失性存储设备(EEPROM...或Flash)设备固件,当USB设备连接主机时,如果固件中有设备生产商VIDPID,会将该VIDPID报告给主机,而忽略主控生产商VIDPID。...由于VIDPID重复并不会对产品使用带来严重影响,很多USB设备生产商(山寨厂居多)为了方便,并不会向USB执行论坛申请自己VID,而是依然沿用主控生产商VID或随便向产品写入VIDPID;同时...,正规厂家只需要申请VIDPID由厂家自行确定,所以存在相同型号产品,可能采用了不同主控(商业需要,很正常),而他们PID是一样,基于上述原因通过VIDPID就不能准确识别USB设备主控型号

1.2K10

Ubuntu下使用4g模块、4G模组上网,USB接口,图形界面

-> NDIS UC15 VID:0x05c6 PID:0x9090 USB Serial ttyUSB0 -> DM ttyUSB1 -> Reserved ttyUSB2 -> AT...ttyUSB3 -> Modem ttyUSB4 -> Reserved EC20 VID:0x05c6 PID:0x9215 USB Serial ttyUSB0 -> DM ttyUSB1...4、本人用电信,电信SIM卡,也可以选择移动模式(因为连接界面并无此电信选项)。 5、输入APN名。 6、点击Apply。 四、连网。 1、选择网络,并连接。 2、连接。...3、配置用户名、密码,使用4G卡上网,不需要账号密码(或者说,不需要真实账号,密码随意)。 4、连接。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

5K30

解决手机与电脑无法进行adb通讯问题

# 1 USB VENDOR ID PER LINE. //这里输入手机VID 怎么知道你手机VID呢?...这里2A45就是设备VID,这是一个16进制值,然后我们把这个值写到上边文件0x2A45,就OK了!...②查看该进程是谁,确认一下 tasklist /fi "pid eq 1668" 这里是360手机助手一个进程,一般来说都是类似的进程占用!...上面的方法如果还没有解决,可以尝试一下下面的方法 首先确保电脑安装adb 手机打开开发者调试模式后 允许模拟点击之后 输入adb devices 无设备问题 遇到问题如下 计算机管理里面...点击下一步 然后选择从磁盘安装 找到刚刚下载更新文件 inf目录下 点击确定 这个时候有的会遇到签名验证失败问题 继续点信任安装就行 然后就会出现一个 ?

1.8K20

CY7C68013A一点总结

-o sample.iic slavefifo.hex(sample为iic文件名,slavefifo为hex文件名) -i表示要生成iic文件,-f表示烧写后采用C2方式启动(程序、VIDPID都从...注意:烧写iic文件并不想hex文件那样立即变成固件描述设备,而是要拔出USB一下才可以。...三、驱动程序:不同上位机软件对应不同驱动程序 四、固件设计: (1) 自定义用户请求 注意请求号不能系统请求号冲突 五、Verilog 程序: 注意:1修改VIDPID可修改设备受哪种上位机软件控制...2注意固件描述符、load.inf(在cypress安装程序下)、生成驱动过程VID\PID不同相同之处。       ...3当FIFO数据端口定义为16位时,需要两个字节十六进制才能体现此时后一个字节为高8位,读出12 34则此数值为3412转化为十进制为13330。

1.3K80

单片机外围模块漫谈之五,USB开发,这个错误你犯了吗?

线把板子连到PCUSB口,记得把板子PTA2PTA3引脚短接起来。...在设备管理器我们看到多出来一个串口,看它属性会看到它VIDPID跟我们程序设置一致。 ? 用串口助手打开此串口,发送字符串,会看到返回同样字符串。 ? 下面我们来看一下具体工作过程。...还有一个很重要问题我们千万不要忽视,就是VIDPID,既厂商识别符(Vendor ID)产品识别符(Product ID)。我们例程中使用VID 0x0483, PID 0x5740。...这个VID是专门分配给ST,虽然我们用这个号程序也能运行,但是不符合规范。我们可以在 usb.org/developers 网站查到当前为所有USB厂商分配VID。...如果我们要开发USB设备,还要向USB组织申请自己VID,之后还要做微软徽标认证,就可以畅行无阻了。

59520

Usbrip:用于跟踪USB设备固件简单CLI取证工具

Usbrip(源自“USB Ripper”,而不是“USB RIP”惊人)是一个开源取证工具,带有CLI界面,可让您跟踪USB设备工件(即USB事件历史记录,“连接”断开连接”事件) Linux...此类表格可能包含以下列:“ 连接”(日期时间),“用户”,“VID”(供应商ID),“PID”(产品ID),“产品”,“制造商”,“序列号”, “端口”“断开连接”(日期时间)。...:show(或生成另一个JSON)USB设备出现在历史记录并且不会出现在auth.json; 使用-sflag 安装时,创建加密存储(7zip存档),以便在crontab调度程序帮助下自动备份累积...USB事件; 根据其VID/或PID搜索有关特定USB设备其他详细信息。...USB历史记录,这就是为什么“Connected”“Disconnected”字段时间戳没有年份,这个得记在脑子里。

97920

嵌入式Linux系列第11篇:使用4G模块

随着它们速率不断提供,模块接口形式也在不断变化,2G模块只要串口就可以了,4G模块一般用USB接口,当然串口也可以,只不过速率慢些。...3 内核配置 • 进入内核目录driver/usb/serial/ 下修改 option.c 文件,添加设备VID PID: VID 为0x2c7c;PID 为0x0125 ?...我们使用lsusb指令,可以看到对应上述PIDVIDUSB设备。 ? 这一步是调试4G模块最关键一步,这一步成功调试工作就完成了一大半以上。其实只要完成第3节内核配置后,就可以实现上述现象了。...+CPIN:ERROR (表示 SIM卡失败或没有插入 SIM卡) AT+CSQ是用来检测信号质量,确定是否可以登陆上网络; 命令返回:+CSQ: **,## 其中**应在10到31之间...6.结束语 本期相关资料在https://github.com/TopSemic/NUC972_Linux 本篇为大家介绍了Linux下EC20 4G模块简单使用,欢迎大家多交流,微信公众号如下

4.3K40

基于WDM专用USB设备驱动程序开发

l 值得注意是,EEPROM包含产品ID(PID厂商ID(VID固件代码程序中所包含PIDVID分别对应INF文件两组ID,由一个INF文件根据这两组ID进行两次枚举,即完成驱动程序安装...以UM-2002IO型USB通用数字IO设备.inf为例,两组ID号如下定义: [Manufacturer] %Cypress%=Cypress [Cypress] %USB/VID_04B4&PID..._0366.DeviceDesc%=EZUSBDIGIT.Dev,USB/VID_04B4&PID_0366 %USB/VID_04B4&PID_0306.DeviceDesc%=EZUSBDI.Dev..., USB/VID_04B4&PID_0306 第一组为EEPROM包含ID号,第二组为固件代码程序包含ID号。...将实例INF文件另存为自己INF文件,yunio.inf;l 在自己INF文件,规划好两组PIDVID号,前一组为EEPROMID号,后一组ID要与固件程序ID一致;l 用自己建立两个驱动程序文件名替代实例

1.5K20

USB 驱动彻底删除「建议收藏」

最近做USB 自定义设备开发,遇到以下问题,应该算是解决了,特地写出来大家分享。...在进行USB设备开发时候 ,经常需要更改USB设备 名称或者pidvid等,特别是进行自定义USB设备,自己写驱动程序时候,会出现一个问题就是: 设计了一个USB设备,插到电脑上通过安装驱动可以正常试用...后来修改了USB设备设备名称 pidvid,再插上电脑,还是显示原来设备名称。...所以利用 搜索功能,查找文件包含LeoUsb2所有文件,等待一段时间 如果你之前安装过成功这个文件名,那么会找到一个或者几个文件(一般为 一个,除非之前安装过多次不同id驱动),选定把他们一起删除...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

4K10

Dissect:一款功能强大事件响应和数字取证框架

Dissect是一款功能强大事件响应和数字取证框架,广大研究人员企业安全专家可以使用该工具实现快速访问分析各种磁盘和文件格式取证数据,并且执行后会自动安装其他所有的功能组件。...值得一提是,具有脚本编写经验高级分析人员还可以通过使用各种Dissect API和解析器创建新工具插件来利用Dissect全部功能。...功能介绍 1、根据所有取证数据事件日志一次性生成事件时间轴; 2、识别组件异常情况; 3、在虚拟机磁盘执行勒索软件加密事件响应; 4、在几小时内对上千台主机执行复杂IoC检测; 5、将Bitlocker...$ target-reg targets/MSEDGEWIN10.tar -k "HKLM\\SYSTEM\\CURRENTCONTROLSET\\ENUM\\USB\\VID_0E0F&PID_...\\VID_0E0F&PID_0003&REV_0102&MI_00', 'USB\\VID_0E0F&PID_0003&MI_00'] - 'CompatibleIDs' ['USB\\

18810

C#进阶——记一次USB HID各种坑(x86,x64,win10,win7)

一、简叙 写工控上位机搬砖人,难免会遇到USB通讯,在一个项目中,我写上位机使用USB HID协议和STM32通讯传输数据,从零大概花了几天找例程,找资料,最后是各种搬砖修补,终于出来了一个出版DOME...HID识别设备主要通过设备PID(厂商ID)VID(产品ID),进而区分。 二、主体程序 网上找了很多版本,主体程序都是大同小异,最后我便借鉴了一篇博文,来砌我主体程序。.../// /// 设备vID /// 设备pID</param...我在x86下,调用“SetupDiGetClassDevs”获取设备信息集句柄时返回地址大概是9位数左右,而在x64,返回地址大概是13位数。...资源大小取决于使用硬件操作系统,即此类型实例在32位硬件操作系统中将是32位,在64位硬件操作系统中将是64位;但其大小总是足以包含系统指针(因此也可以包含资源名称),关心小伙伴可以深入了解一下

1.9K30
领券