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

通过USB或其他方式连接新驱动器时获取通知(C#)

作为一个云计算领域的专家,我可以告诉你,通过USB或其他方式连接新驱动器时获取通知可以通过C#编程语言实现。

在C#中,可以使用Windows API来监控USB设备的连接和断开事件。具体来说,可以使用RegisterDeviceNotification函数来注册设备通知,并在设备连接或断开时接收通知。

以下是一个简单的示例代码,演示如何使用C#监控USB设备的连接和断开事件:

代码语言:csharp
复制
using System;
using System.Runtime.InteropServices;

public class UsbDeviceWatcher
{
    public delegate void UsbDeviceEventHandler(object sender, UsbDeviceEventArgs e);

    public event UsbDeviceEventHandler UsbDeviceConnected;
    public event UsbDeviceEventHandler UsbDeviceDisconnected;

    private IntPtr _windowHandle;
    private GCHandle _thisHandle;

    public UsbDeviceWatcher()
    {
        _thisHandle = GCHandle.Alloc(this);
        _windowHandle = NativeMethods.CreateWindowEx(0, NativeMethods.WC_NOTIFY, "", 0, 0, 0, 0, 0, NativeMethods.HWND_MESSAGE, 0, 0, 0);
        NativeMethods.DEV_BROADCAST_DEVICEINTERFACE dbi = new NativeMethods.DEV_BROADCAST_DEVICEINTERFACE();
        dbi.dbcc_size = Marshal.SizeOf(dbi);
        dbi.dbcc_devicetype = NativeMethods.DBT_DEVTYP_DEVICEINTERFACE;
        IntPtr buffer = Marshal.AllocHGlobal(dbi.dbcc_size);
        Marshal.StructureToPtr(dbi, buffer, true);
        NativeMethods.RegisterDeviceNotification(_windowHandle, buffer, NativeMethods.DEVICE_NOTIFY_WINDOW_HANDLE);
        Marshal.FreeHGlobal(buffer);
    }

    ~UsbDeviceWatcher()
    {
        NativeMethods.DestroyWindow(_windowHandle);
        _thisHandle.Free();
    }

    private void OnUsbDeviceEvent(UsbDeviceEventArgs e)
    {
        if (e.Connected)
        {
            UsbDeviceConnected?.Invoke(this, e);
        }
        else
        {
            UsbDeviceDisconnected?.Invoke(this, e);
        }
    }

    private const int WM_DEVICECHANGE = 0x0219;

    private void WndProc(ref System.Windows.Forms.Message m)
    {
        if (m.Msg == WM_DEVICECHANGE)
        {
            UsbDeviceEventArgs e = new UsbDeviceEventArgs();
            e.Connected = (m.WParam.ToInt32() == NativeMethods.DBT_DEVICEARRIVAL);
            e.DevicePath = Marshal.PtrToStringAuto(m.LParam);
            OnUsbDeviceEvent(e);
        }
    }

    private class NativeMethods
    {
        public const int WM_DEVICECHANGE = 0x0219;
        public const int DBT_DEVICEARRIVAL = 0x8000;
        public const int DBT_DEVICEREMOVECOMPLETE = 0x8004;
        public const int DBT_DEVTYP_DEVICEINTERFACE = 5;
        public const int DEVICE_NOTIFY_WINDOW_HANDLE = 0;
        public const int HWND_MESSAGE = -3;
        public const string WC_NOTIFY = "WC_NOTIFY";

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public static extern IntPtr CreateWindowEx(int dwExStyle, string lpClassName, string lpWindowName, int dwStyle, int x, int y, int nWidth, int nHeight, IntPtr hWndParent, IntPtr hMenu, IntPtr hInstance, IntPtr lpParam);

        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool DestroyWindow(IntPtr hWnd);

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        public static extern IntPtr RegisterDeviceNotification(IntPtr hRecipient, IntPtr NotificationFilter, int Flags);

        [StructLayout(LayoutKind.Sequential)]
        public struct DEV_BROADCAST_DEVICEINTERFACE
        {
            public int dbcc_size;
            public int dbcc_devicetype;
            public int dbcc_reserved;
            public Guid dbcc_classguid;
            public char dbcc_name;
        }
    }
}

public class UsbDeviceEventArgs : EventArgs
{
    public bool Connected { get; set; }
    public string DevicePath { get; set; }
}

在上面的代码中,UsbDeviceWatcher类监控USB设备的连接和断开事件,并在事件发生时触发UsbDeviceConnectedUsbDeviceDisconnected事件。UsbDeviceEventArgs类包含了设备连接状态和设备路径等信息。

使用UsbDeviceWatcher类非常简单,只需要创建一个实例并订阅UsbDeviceConnectedUsbDeviceDisconnected事件即可:

代码语言:csharp
复制
UsbDeviceWatcher watcher = new UsbDeviceWatcher();
watcher.UsbDeviceConnected += (sender, e) => Console.WriteLine($"USB device connected: {e.DevicePath}");
watcher.UsbDeviceDisconnected += (sender, e) => Console.WriteLine($"USB device disconnected: {e.DevicePath}");

需要注意的是,上面的代码只能在Windows操作系统上运行,并且需要引用System.Windows.FormsSystem.Runtime.InteropServices命名空间。

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

相关·内容

如何在USB驱动器中安装CentOS 7

您有没有想过在USB笔式驱动器中安装CentOS 7的便携式实例? 您可能不知道它,但您可以轻松地将CentOS 7安装在USB驱动器中,就像将其安装在物理硬盘驱动器虚拟环境中一样。...在本文中,我们将向您展示如何在USB驱动器中安装CentOS 7 。 先决条件 在开始安装之前,请执行航班检查并确保您拥有以下内容: 安装介质( 4 GB更多的DVDUSB驱动器)。...网络连接USB驱动器中安装CentOS 7 在检查所有先决条件之后,现在是时候通过下载Rufus实用工具的副本来使USB驱动器可启动了。 下载完成后,双击安装程序,将显示下面的窗口。...如果您的PC已通过互联网LAN电缆连接到互联网,安装程序将自动检测您当前的位置,日期和时间。 接下来,单击“ 完成 ”按钮以保存更改。 配置日期和时间 配置键盘 下一步是键盘配置。...CentOS 7安装进度 完成CentOS 7安装 在安装过程结束,您将在右下角收到系统已成功安装的通知。 单击“ 重新启动 ”按钮以完成配置。 卸下安装介质,但要插入16 GB USB驱动器

5.6K20

5种电脑之间快速传输几百G文件的方法,我只说给你3种!

根据经验,使用任何使用物理连接的方法(如交换硬盘通过局域网传输),都比使用快速简单的解决方案(如通过Wi-FiUSB驱动器传输)更快。 方案1:移动硬盘 显然,大多数人都是这么做的。...如果是的话,就把硬盘从原来的电脑上断开,然后把它连接电脑上。它会在目标电脑上显示为另一个驱动器。你可以通过SATA传输数据,这将比USB更快。...所以,当你需要在电脑之间传输文件,你不需要每次都建立一个连接;只要两台电脑都开着,它就一直开着。 我们有一个简单的指南,告诉你如何在Windows和Mac之间共享文件。...但要确保你买的USB-C线缆不会弄坏电子设备。 手动连接硬盘SSD 如果你正在从一台旧电脑转移到一台电脑,旧电脑可能不再有任何功能。或者你可能想要安装一个的硬盘来代替旧的。...硬盘驱动器(HDD)和固态硬盘(SSD)使用标准的SATA电缆连接到主板。如果你有一个备用的SATAeSATA(外部SATA)端口,在那里连接你的旧硬盘。操作系统将把它识别为一个驱动器

59.8K20
  • 被抢笔记本电脑的时候,一根自制USB电缆护你周全

    首先需要USB设备尽可能紧密连接到你的身体,然后将数据电缆一直连接到计算机。这里使用可分离的磁铁连接器,使其尽可能靠近机器,如下: 一个便宜的$ 4 USB驱动器,带有耐用的钥匙圈孔 ?...一个小而结实的登山扣钥匙圈,用于将上述驱动器连接到皮带环( ? 一个$ 7 USB磁分离适配器插到电脑的USB-A端口 ? 最后,一根3美元的1米长USB延长线将它们连接起来 ?...可以通过命令ps -aux来获取。 所以只要有设备插入删除,守护进程udev就会管理它。 也就是说使用了udev,所有的设备都能在/dev/目录下找到对应的设备文件。...因此,要达成视频的效果, 我们需要向添加的udev规则文件/etc/udev/rules.d/。...这是一条简单的规则,每次任何USB驱动器被移除,该触发器都会触发xscreensaver锁定屏幕: ? 但是该规则可能有点太宽泛了。

    97710

    vmware14.0知识点手册

    映射,您需 要将主机文件系统中的虚拟磁盘映射为单独的映射驱动器通过使用映射驱动器,您无需进入虚拟机就可以连 接虚拟磁盘。 ?...将虚拟机移到位置新主机 您可以将 Workstation Pro 中创建的虚拟机移到其他主机系统同一主机系统的其他位置。也可以将虚拟机移到使用其他操作系统的主机系统。...将虚拟机移到其他主机系统同一主机系统的其他位置Workstation Pro 会为虚拟网络适配器生成的 MAC地址。...NAT 模式网络连接 使用 NAT 模式网络,虚拟机在外部网络中不必具有自己的 IP 地址。主机系统上会建立单独的专用网络。在默认配置中,虚拟机会在此专用网络中通过 DHCP 服务器获取地址。...配置 USB 控制器设置 您可以配置 USB 控制器是否支持常等量 USB 和蓝牙设备,何时将USB 设备连接到主机系统,以及人机界面设备 (HID) 是否显示在可移动设备菜单中。

    5K90

    EaseUS Data Recovery Wizard Pro:Mac数据恢复软件

    此专业版Mac数据恢复软件可以快速获取已删除丢失的文件,并在MacBook,iMac,硬盘驱动器USB,存储卡,相机,SD卡和其他存储设备的实例中恢复。一旦你得到它,你可以终生使用它。...清理照片但SD卡上没有备份?将家庭视频移出64GB USB?...驱动器恢复向导在格式化的USB驱动器,闪存驱动器,笔式驱动器和任何大小的其他可移动存储介质上挽救数据丢失在其他设备上恢复将丢失的文件丢回数码相机,iPod,媒体播放器和连接到Mac计算机的其他存储设备3...此时,使用内置可启动媒体创建可启动USB以重启Mac,然后在紧急情况下立即恢复丢失的数据。在macOS 10.13中,通过可启动媒体恢复存储在系统驱动器上的数据更安全。...Mac数据保护通过Mac数据恢复程序中的简单和进一步的完整保护,您可以始终保护特定分区上的文件夹。当受保护的文件突然掉入垃圾箱,您可以直接将其恢复。

    1.5K30

    Ubuntu2Go制作使用和资料说明(LinuxtoGo)

    2.将可引导USB驱动器插入计算机并引导至Live Ubuntu系统。 重要信息:对于Windows 810等预安装的计算机,必须禁用“快速启动”和“安全启动”功能。...5.单击桌面快捷方式“Install Ubuntu”以打开Ubuntu安装向导。 按照向导,直到要求选择安装Ubuntu的位置。选择最后一个选项“其他”,然后单击“继续”以显示分区表。 ?...Boot-Repair还具有备份表分区,备份bootsectors,创建Boot-Info(通过电子邮件论坛获取帮助)更改默认修复参数的高级选项:配置GRUB,添加内核选项(acpi = off。...备注:建议在live-USB上安装ISO (例如通过UnetBootinLiliUSBUniversal USB Installer)。...会话(如果可以访问它) - 连接到互联网 - 打开一个的终端,然后输入以下命令(每行后按Enter键): sudo add-apt-repository ppa:yannubuntu / boot-repair

    3.7K10

    电脑开机错误代码0xc0000428_状态为0xc0000428

    此外,在Windows上安装软件硬件后,若没有通过Windows的识别和签名,错误码0xc0000428则同样会出现。...原因2:安装了未通过签名的驱动程序 启动遇到错误码0xc0000428,还可能是因为最近更改了硬件软件,安装了未通过签名的驱动程序,Windows则无法识别。...② 把USB连接电脑,进入BIOS设置,修改开机顺序,使电脑从USB驱动器启动。 ③ 成功启动后,点击安装程序窗口中的“修复计算机”以进入Windows恢复环境。...② 把USB连接电脑,进入BIOS设置,修改开机顺序,使电脑从USB驱动器启动。 ③ 成功启动后,点击安装程序窗口中的“修复计算机”以进入Windows恢复环境。...② 把USB连接电脑,进入BIOS设置,修改开机顺序,使电脑从USB驱动器启动。 ③ 成功启动后,点击安装程序窗口中的“修复计算机”以进入Windows恢复环境。

    2.4K10

    全速USB和高速USB的识别过程分析

    2 全速和低速USB的识别 根据规范,全速(Full Speed)和低速(Low Speed)很好区分,因为在设备端有一个1.5k的上拉电阻,当设备插入hub上电(固定线缆的USB设备),有上拉电阻的那根数据线就会被拉高...图3 高速USB的协商过程 hub检测到有设备插入/上电,向主机通报,主机发送Set_Port_Feature请求让hub复位插入的设备。...hub发送Chirp KJ序列的方式和设备一样,通过电流源向差分数据线交替灌17.78mA的电流实现。 再回到设备端来。...连接D+/D-上的高速终端电阻(high-speed termination),实际上就是全速/低速差分驱动器。 进入默认的高速状态。...在近2ms后,设备发送第一个Chirp K,向host通知说:我是一个高速设备,如果可能,请用高速方式与我通信。

    4.3K20

    巧妙再构想的Slax发行版成功突破便携式Linux的局限性(Reviews)

    屏幕面板也没有其他类型的小程序和应用程序启动器。 没有虚拟工作区切换器小程序。 有一些虚拟工作区方便地隐藏在视图之外。您可以通过键盘快捷键直接访问它们。...Slax通过简单的文件夹拖动即可完成工作,本身无需安装。 是的,从硬盘驱动器加载应用程序并执行其他计算任务,您可以从Slax获得更高的性能速度,但这往往是偏激的。...不建议您通过双引导系统上的硬盘驱动器安装来运行Slax,这会带来其他问题。...我还能够通过从插入笔记本电脑的USB进行引导来运行Slax,该笔记本电脑可以双启动进入Windows 10和其他三个Linux操作系统。...Ÿ 按CTRL+Alt+T键打开终端程序;单击面板工具栏最左边的菜单按钮后单击终端图标 Ÿ 输入以下命令:apt get install synaptic 当没有的文本行向下滚动到终端窗口,安装完成

    3K10

    关于文件同步中单向同步和双向同步

    连接到Internet(WAN)的计算机之间的同步。这需要VPN隧道。计算机可以是笔记本电脑,台式机,工作站,服务器。计算机和外部(USB驱动器之间的同步。计算机与NAS之间的同步。...最终目标是确保计算机和/驱动器上的所选文件夹具有相同的最新文件。未连接的计算机之间的同步对于未连接到网络的计算机,可以使用便携式USB驱动器来实现同步。...如果家用计算机(PC-1)上的文件必须与工作中的计算机(PC-2)上的文件保持同步,则可以通过将PC-1与便携式USB驱动器进行同步,然后再将PC-1与便携式USB驱动器进行同步来实现同步。...在该过程结束,相同的最新文件将在两台PC上(以及USB驱动器上,这对于数据备份很有用)文件同步功能是镭速传输软件的一大特色,文件智能双向同步,释放用户双手,同时也是在间接为数据做好数据备份。...传统文件传输方式(如FTP/HTTP/CIFS)在传输速度、传输安全、系统管控等多个方面存在问题,而镭速文件传输解决方案通过自主研发、技术创新,可满足客户在文件传输加速、传输安全、可管可控等全方位的需求

    2.8K30

    一款超好用的Mac系统NTFS磁盘读写软件Tuxera NTFS for Mac2022

    Tuxera NTFS for Mac2022简介在 Mac 上打开、编辑、复制、移动删除存储在 Windows NTFS 格式 USB 驱动器上的文件。...当您获得一台 Mac ,它只能读取 Windows NTFS 格式的 USB 驱动器。要将文件添加、保存写入您的 Mac,您需要一个附加的 NTFS 驱动程序。...Tuxera NTFS for Mac2022功能特性1、轻松转换驱动器无论使用Windows PC还是Mac,可以直接使用同一个USB设备,Tuxera NTFS为NTFS格式的磁盘增加了完整的读写功能...2、保全重要内容对于传输重要文件可以完全放心,Tuxera NTFS领先的驱动程序可完整无损地存储视频,图片,重要文档和其他文件。...Tuxera NTFS配套应用程序Tuxera Disk Manager,可轻松格式化,检查和修复NTFS驱动器。此外,Tuxera NTFS for mac可方便地与双启动虚拟机设置配合使用。

    3.4K00

    制作 Kali 可启动 USB 驱动器 (Linux)

    制作 Kali 可启动 USB 驱动器 (Linux) 我们最喜欢的方式,也是最快的方法,启动和运行 Kali Linux 是从 USB 驱动器“实时”运行它。...驱动器上 它具有潜在的持久性——通过一些额外的努力,您可以将 Kali Linux “实时” USB 驱动器配置为具有持久性存储,因此您收集的数据将在重新启动后保存 为此,我们首先需要创建一个可引导的...如果您在 Linux 下运行,则可以使用dd预先安装的命令使用Etcher。 USB 拇指驱动器,4GB 更大。(具有直接 SD 卡插槽的系统可以使用类似容量的 SD 卡。步骤相同。)...在 Linux 上创建可引导 Kali USB 驱动器(DD 状态) 或者,还有一些其他选项可用于成像。 第一个选项是dd带有状态指示器。但是,这仅适用于较的系统。...我们还可以使用size此处的标志来获取近似计时器。根据使用的图像更改大小。

    22110

    IBM Storwize V7000存储运维使用手册

    的 Storwize V7000 Unified 可以支持文件和块存储,并利用完全集成的管理功能来处理非结构化数据的大规模增长,而无需其他存储纵向结构。...外部存储器 外部存储系统存储控制器是一种设备,用于协调和控制一个多个磁盘驱动器的操作。存储系统会从整体上使驱动器的操作与系统的操作同步。 3.   ...主机 主机系统是通过光纤通道接口 IP 网络连接到 Storwize V7000 的计算机。 7.   驱动器 驱动器指数据存储设备,可以是硬盘驱动器,也可以是固态驱动器 (SSD)。...插入V7000控制器上对应的管理以太网口上面的USB口,待V7000配置稳定后,即可通过设置的IP地址对存储进行管理; 2.   ...选择配置方式。“使用推荐配置”该选项基于RAID级别和驱动器类的建议值配置所有可用驱动器

    3.7K10

    雷塞控制器SMC304简单介绍

    单脉冲 4Hz 电机数量:4个 0-3轴 轴信号: 4个 PUL+、PUL-、DIR+、DIR- 脉冲输出方式:3种 1、 脉冲+方向信号模式(默认) 2、 双脉冲(CW/CCW)模式 3、 AB...1、 差分方式 2、 单端方式 伺服专用信号: 每一轴都配有伺服专用信号接口:SRVON、RESET、ALM 1、 SRVON 控制器输出给伺服电机驱动器的使能控制信号 2、 ALM 伺服电机驱动器发给控制器发给控制器的报警状态信号...,用来报告伺服驱动器电机出错。...通用输出接口: 12路通用输出接口 标号 OUT0~OUT11最大电流:500mA (连接发光二极管需要串联电阻,否则肯能造成二极管被击穿) PWM输出接口 通讯: RS232:...U盘通讯 控制器通过USB接口上传、下载数据,并通过U盘下载工程文件到控制器,更新工程文件。

    2K20

    虹科分享|USB设备安全管理平台|USB软件加密不可接受的五个原因

    1 普通USB驱动器不会为存储的软件加密数据提供保护常规USB驱动器其他数据保护方法之间的主要区别之一是,常规USB驱动器没有任何内置机制来保护存储在其上的数据。...普通USB驱动器其他数据保护方法之间的另一个关键区别是,常规USB驱动器通常更容易受到物理损坏,例如跌落暴露在水中极端温度下。...这意味着,如果未正确处理常规USB驱动器,该驱动器上的数据可能会丢失损坏。相比之下,其他数据保护方法提供了额外的保护措施,防止物理损坏。...通过采取这些步骤,个人和组织可以更好地保护他们的数据免受这些攻击。4 用户错误:清除安全并暴露数据在数据安全方面,组织使用的关键工具之一是加密。...然而,当使用这些设备,他们可能会意外擦除加密的数据。当用户想要在设备上为数据腾出空间,可能会发生这种情况。要做到这一点,用户可以简单地擦除加密数据,而不会意识到其中的含义。

    47240

    戴尔:黑客窃取了4900万用户的敏感信息

    戴尔公司称,威胁者在入侵过程中获取了以下信息: 姓名 地址 戴尔硬件和订单信息,包括服务标签、项目描述、订单日期和相关保修信息 该公司强调,被盗信息不包括财务支付信息、电子邮件地址电话号码,他们正在与执法部门和第三方取证公司合作调查这一事件...戴尔客户数据在漏洞论坛上被出售 图源:Daily Dark Web 虽然无法确认这是否与戴尔披露的数据相同,但它与数据泄露通知中列出的信息相吻合。...虽然这听起来有些牵强,但该黑客过去也曾进行过类似的攻击,他们通过邮寄被篡改的 Ledger 硬件钱包来窃取加密货币,或者邮寄带有 USB 驱动器的礼物来安装恶意软件。...假冒BEST BUY礼品卡,附带可安装恶意软件的USB驱动器 图源:TrustWave 目前,该数据库已经不是在售状态,所以黑客很可能正以某种方式将其货币化。...戴尔公司提醒广大客户,如果您收到任何声称来自戴尔的实物邮件电子邮件,要求您安装软件、更改密码执行其他潜在风险操作,请务必提高警惕。

    10110

    计算机基础之IO设备与IO端口

    输出设备(如显示器、打印机)用于将计算机系统中的数据输出给用户其他设备。 例子: 键盘:用于输入文本。 显示器:用于显示图像和文字。 打印机:用于打印文档。 磁盘驱动器:用于存储和检索数据。...功能: 读取:CPU通过读取指令从IO端口获取数据。 写入:CPU通过写入指令向IO端口发送数据命令。 控制:CPU通过IO端口发送控制信号来控制设备的行为。...例子: 串行端口(COM1、COM2等):用于连接串行设备,如老式鼠标调制解调器。 并行端口(LPT1):用于连接打印机其他并行设备。...USB端口:现代计算机广泛使用的通用接口,用于连接各种设备,如键盘、鼠标、U盘等。 总结 IO设备:指实际的硬件设备,用于输入输出数据。...例如,USB鼠标通过USB端口与计算机系统连接USB端口负责接收来自鼠标的信号并将这些信号传递给操作系统。

    8110

    【Linux】《how linux work》第三章 设备

    Linux内核可以在检测到系统上有新设备(例如,当有人插入USB闪存驱动器),向用户空间进程(称为udevd)发送通知。...例如,用于进程间通信的D-Bus系统有一个名为udisks-daemon的守护进程,它监听出站的udev事件,以自动挂载磁盘并进一步通知其他桌面软件磁盘已可用。...主机适配器通过SCSI命令集与设备进行点对点的通信;设备将响应发送回主机适配器。 计算机并没有直接连接到设备链上,因此必须通过主机适配器与磁盘和其他设备进行通信。...由/dev/sdf表示的USB闪存驱动器理解SCSI命令,但为了实际与驱动器通信,内核需要知道如何通过USB系统进行通信。...当用户空间进程与SCSI子系统通信,通常通过块设备层和/其他在SCSI设备类驱动程序(如sdsr)之上的内核服务来进行。 换句话说,大多数用户进程不需要了解SCSI设备其命令。

    18010

    硬件笔记(8)----USB学习笔记5

    10 USB 描述符 如前面所述,当某个设备被连接USB 主机上,该设备会向主机提供其功能和电源要求。通常,设备会通过一个描述符表格(其固件的一部分)来提供这些信息。...如果您正在阅读创建您自己的描述符,那么请注意,传输数据字段,优先传输最低有效位。许多参数的长度均为 2个字节。请确保先发送低字节,然后再发送高字节。 ?...10.3 接口关联描述符(IAD) 该描述符介绍两个多个接口,这些接口与单个设备功能相关。接口关联描述符(IAD)会通知给主机各个接口已经连接好。...图 43 显示的是两个单独接口与一个指定设备功能相连接方式。这便是 IAD 需要的信息。表 7 显示的是接口关联描述符的结构。 ? 多个接口与多个功能相关 ?...例如,对于 HID 类设备,开发者必须将报告描述符添加到描述符文件内,用于定义其他设备属性。如果需要额外的描述符,可以在类定义规范其他类的支持文档中查找相关的描述符格式。

    1.7K20
    领券