爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      windows USB 设备驱动开发-USB电源管理(三)

      首页 知识中心 软件开发 文章详情页

      windows USB 设备驱动开发-USB电源管理(三)

      2024-09-10 08:20:51 阅读次数:36

      硬件,连接器,驱动开发

      USB 选择性暂停

      USB 选择性挂起功能允许集线器驱动程序挂起单个端口,而不会影响集线器上其他端口的操作。 USB 设备的选择性挂起在便携式计算机中特别有用,因为它有助于节省电池电量。 许多设备(如指纹读取器和其他类型的生物识别扫描仪)只需间歇性电源。 在设备未使用时暂停此类设备可降低整体功耗。 更重要的是,任何未选择性挂起的设备都可能会阻止 USB 主机控制器禁用其位于系统内存中的传输计划。 (DMA) 直接内存访问,由主机控制器传输到计划程序可以阻止系统的处理器进入更深的睡眠状态,例如 C3。

      有两种不同的机制可用于选择性地挂起 USB 设备:空闲请求 IRP (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) 和设置电源 IRP (IRP_MN_SET_POWER) 。 要使用的机制取决于操作系统和设备类型:复合设备或非复合设备。

      选择选择性挂起机制

      对于复合设备上的接口,使用等待唤醒 IRP (IRP_MN_WAIT_WAKE) 启用远程唤醒接口的客户端驱动程序必须使用空闲请求 IRP (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) 机制选择性地挂起设备。

      Windows 操作系统的版本决定了非复合设备的驱动程序启用选择性挂起的方式。

      • Windows XP:在 Windows XP 上,所有客户端驱动程序都必须使用空闲请求 IRP (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) 来关闭其设备。 客户端驱动程序不得使用 WDM 电源 IRP 选择性地挂起其设备。 这样做可以防止其他设备选择性地挂起。
      • Windows Vista 和更高版本的 Windows:驱动程序编写器有更多的选择来关闭 Windows Vista 和更高版本的 Windows 中的设备。 尽管 Windows Vista 支持 Windows 空闲请求 IRP 机制,但驱动程序不需要使用它。

      下表显示了需要使用空闲请求 IRP 的方案,以及可以使用 WDM 电源 IRP 挂起 USB 设备的方案:

      windows USB 设备驱动开发-USB电源管理(三)

      发送 USB 空闲请求 IRP

      当设备处于空闲状态时,客户端驱动程序通过发送空闲请求 IRP (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) 来通知总线驱动程序。 在总线驱动程序确定将设备置于低功耗状态是安全的之后,它会调用客户端设备驱动程序使用空闲请求 IRP 向下传递堆栈的回调例程。

      在回调例程中,客户端驱动程序必须取消所有挂起的 I/O 操作,并等待所有 USB I/O IRP 完成。 然后,它可以发出 IRP_MN_SET_POWER 请求,将 WDM 设备电源状态更改为 D2。 回调例程必须在返回之前等待 D2 请求完成。 

      调用空闲通知回调例程后,总线驱动程序未完成空闲请求 IRP。 相反,总线驱动程序会保留空闲请求 IRP 挂起,直到满足以下条件之一:

      • 收到 IRP_MN_SUPRISE_REMOVAL 或 IRP_MN_REMOVE_DEVICE IRP 。 收到其中一个 IRP 时,空闲请求 IRP 将完成STATUS_CANCELLED;
      • 总线驱动程序收到将设备置于工作电源状态的请求 (D0) 。 收到此请求后,总线驱动程序使用STATUS_SUCCESS完成挂起的空闲请求 IRP;

      以下限制适用于空闲请求 IRP 的使用:

      • 发送空闲请求 IRP 时,驱动程序必须处于设备电源状态 D0 ;
      • 驱动程序必须为每个设备堆栈发送一个空闲请求 IRP;

      以下 WDM 示例代码演示了设备驱动程序发送 USB 空闲请求 IRP 所执行的步骤。 以下代码示例中省略了错误检查。

      1.分配和初始化 IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION IRP

      irp = IoAllocateIrp (DeviceContext->TopOfStackDeviceObject->StackSize, FALSE);
      nextStack = IoGetNextIrpStackLocation (irp);
      nextStack->MajorFunction = IRP_MJ_INTERNAL_DEVICE_CONTROL;
      nextStack->Parameters.DeviceIoControl.IoControlCode = IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION;
      nextStack->Parameters.DeviceIoControl.InputBufferLength =
      sizeof(struct _USB_IDLE_CALLBACK_INFO);

      2.(USB_IDLE_CALLBACK_INFO) 分配和初始化空闲请求信息结构。

      idleCallbackInfo = ExAllocatePool (NonPagedPool,
      sizeof(struct _USB_IDLE_CALLBACK_INFO));
      idleCallbackInfo->IdleCallback = IdleNotificationCallback;
      // Put a pointer to the device extension in member IdleContext
      idleCallbackInfo->IdleContext = (PVOID) DeviceExtension;  
      nextStack->Parameters.DeviceIoControl.Type3InputBuffer =
      idleCallbackInfo;

      3.设置完成例程。

      客户端驱动程序必须将完成例程与空闲请求 IRP 相关联。 

      IoSetCompletionRoutine (irp,
          IdleNotificationRequestComplete,
          DeviceContext,
          TRUE,
          TRUE,
          TRUE);

      4.将空闲请求存储在设备扩展中。

      deviceExtension->PendingIdleIrp = irp;

      5.将空闲请求发送到父驱动程序。

      ntStatus = IoCallDriver (DeviceContext->TopOfStackDeviceObject, irp);
      取消 USB 空闲请求

      在某些情况下,设备驱动程序可能需要取消已提交到总线驱动程序的空闲请求 IRP。 如果设备被删除、空闲后变为活动状态并发送空闲请求,或者整个系统正在转换为较低的系统电源状态,则可能会出现这种情况。

      客户端驱动程序通过调用 IoCancelIrp 取消空闲 IRP。 下表描述了取消空闲 IRP 的三种方案,并指定驱动程序必须执行的操作:

      windows USB 设备驱动开发-USB电源管理(三)
      USB 空闲请求 IRP 完成例程

      在许多情况下,总线驱动程序可能会调用驱动程序的空闲请求 IRP 完成例程。 如果发生这种情况,客户端驱动程序必须检测总线驱动程序完成 IRP 的原因。 返回的状态代码可以提供此信息。 如果状态代码未STATUS_POWER_STATE_INVALID,则驱动程序应将其设备置于 D0 中,如果设备尚未处于 D0 中。 如果设备仍处于空闲状态,驱动程序可以提交另一个空闲请求 IRP。

      空闲请求 IRP 完成例程不应阻止等待 D0 电源请求完成。 完成例程可由集线器驱动程序在电源 IRP 的上下文中调用,在完成例程中阻止另一个电源 IRP 可能会导致死锁。

      以下列表指示空闲请求的完成例程应如何解释某些常见状态代码:

      windows USB 设备驱动开发-USB电源管理(三)
      下面的代码示例演示空闲请求完成例程的示例实现。

      /*Routine Description:
      
        Completion routine for idle notification IRP
      
      Arguments:
      
          DeviceObject - pointer to device object
          Irp - I/O request packet
          DeviceExtension - pointer to device extension
      
      Return Value:
      
          NT status value
      
      --*/
      
      NTSTATUS
      IdleNotificationRequestComplete(
          IN PDEVICE_OBJECT DeviceObject,
          IN PIRP Irp,
          IN PDEVICE_EXTENSION DeviceExtension
          )
      {
          NTSTATUS                ntStatus;
          POWER_STATE             powerState;
          PUSB_IDLE_CALLBACK_INFO idleCallbackInfo;
      
          ntStatus = Irp->IoStatus.Status;
      
          if(!NT_SUCCESS(ntStatus) && ntStatus != STATUS_NOT_SUPPORTED)
          {
      
              //Idle IRP completes with error.
      
              switch(ntStatus)
              {
      
              case STATUS_INVALID_DEVICE_REQUEST:
      
                  //Invalid request.
      
                  break;
      
              case STATUS_CANCELLED:
      
                  //1. The device driver canceled the IRP.
                  //2. A system power state change is required.
      
                  break;
      
              case STATUS_POWER_STATE_INVALID:
      
                  // Device driver requested a D3 power state for its device
                  // Release the allocated resources.
      
                  goto IdleNotificationRequestComplete_Exit;
      
              case STATUS_DEVICE_BUSY:
      
                  //The bus driver already holds an idle IRP pending for the device.
      
                  break;
      
              default:
                  break;
      
              }
      
      
              // If IRP completes with error, issue a SetD0
      
              //Increment the I/O count because
              //a new IRP is dispatched for the driver.
              //This call is not shown.
      
              powerState.DeviceState = PowerDeviceD0;
      
              // Issue a new IRP
              PoRequestPowerIrp (
                  DeviceExtension->PhysicalDeviceObject,
                  IRP_MN_SET_POWER,
                  powerState,
                  (PREQUEST_POWER_COMPLETE) PoIrpCompletionFunc,
                  DeviceExtension,
                  NULL);
          }
      
      IdleNotificationRequestComplete_Exit:
      
          idleCallbackInfo = DeviceExtension->IdleCallbackInfo;
      
          DeviceExtension->IdleCallbackInfo = NULL;
      
          DeviceExtension->PendingIdleIrp = NULL;
      
          InterlockedExchange(&DeviceExtension->IdleReqPend, 0);
      
          if(idleCallbackInfo)
          {
              ExFreePool(idleCallbackInfo);
          }
      
          DeviceExtension->IdleState = IdleComplete;
      
          // Because the IRP was created using IoAllocateIrp,
          // the IRP needs to be released by calling IoFreeIrp.
          // Also return STATUS_MORE_PROCESSING_REQUIRED so that
          // the kernel does not reference this.
      
          IoFreeIrp(Irp);
      
          KeSetEvent(&DeviceExtension->IdleIrpCompleteEvent, IO_NO_INCREMENT, FALSE);
      
          return STATUS_MORE_PROCESSING_REQUIRED;
      }
      USB 空闲通知回调例程

      总线驱动程序 (中心驱动程序的实例或通用父驱动程序) 确定何时可以安全地挂起其设备的子级。 如果是,它将调用每个子级的客户端驱动程序提供的空闲通知回调例程。

      USB_IDLE_CALLBACK的函数原型如下所示:

      typedef VOID (*USB_IDLE_CALLBACK)(__in PVOID Context);

      设备驱动程序必须在其空闲通知回调例程中执行以下操作:

      • 如果需要设备 进行 远程唤醒,请为设备请求IRP_MN_WAIT_WAKE IRP;
      • 取消所有 I/O,让设备准备好进入低功耗状态;
      • 通过将 PowerState 参数设置为 wdm.h 中定义的枚举器值 PowerDeviceD2 (调用 PoRequestPowerIrp,将设备置于 WDM 睡眠状态;ntddk.h) 。 在 Windows XP 中,驱动程序不得将其设备置于 PowerDeviceD3 中,即使设备未进行远程唤醒;

      在 Windows XP 中,驱动程序必须依赖于空闲通知回调例程来有选择地挂起设备。 如果在 Windows XP 中运行的驱动程序使设备直接处于较低功率状态,而不使用空闲通知回调例程,这可能会阻止 USB 设备树中的其他设备挂起。

      集线器驱动程序和 USB 通用父驱动程序 (Usbccgp.sys) IRQL = PASSIVE_LEVEL 调用空闲通知回调例程。 这允许回调例程在等待电源状态更改请求完成时阻止。

      仅当系统处于 S0 且设备处于 D0 中时,才会调用回调例程。

      以下限制适用于空闲请求通知回调例程:

      • 设备驱动程序可以在空闲通知回调例程中启动设备电源状态从 D0 到 D2 的转换,但不允许其他电源状态转换。 具体而言,驱动程序在执行其回调例程时不得尝试将其设备更改为 D0 ;
      • 设备驱动程序不得从空闲通知回调例程中请求多个电源 IRP;
      在空闲通知回调例程中为唤醒设备提供支持

      空闲通知回调例程应确定其设备是否有 挂起IRP_MN_WAIT_WAKE 请求。 如果没有IRP_MN_WAIT_WAKE请求挂起,回调例程应在暂停设备之前提交IRP_MN_WAIT_WAKE请求。 

      USB 全局挂起

      USB 2.0 规范通过将总线上的所有 USB 流量(包括帧启动数据包)停止,将全局挂起定义为 USB 主机控制器后面的整个总线的挂起。 尚未挂起的下游设备在其上游端口上检测到空闲状态,并自行进入挂起状态。 Windows 不会以这种方式实现全局挂起。 在停止总线上的所有 USB 流量之前,Windows 始终有选择地挂起 USB 主机控制器后面的每个 USB 设备。

      Windows 7 中的全局挂起条件

      与 Windows Vista 相比,Windows 7 在选择性地挂起 USB 集线器时更具攻击性。 Windows 7 USB 集线器驱动程序将有选择地挂起其所有连接的设备都处于 D1、 D2 或 D3 设备电源状态的任何集线器。 所有 USB 集线器选择性挂起后,整个总线进入全局挂起。 每当设备处于 D1、D2 或 D3 的 WDM 设备状态时,Windows 7 USB 驱动程序堆栈会将设备视为空闲。

      Windows Vista 中全局挂起的条件

      在 Windows Vista 中执行全局挂起的要求比在 Windows XP 中更灵活。

      具体而言,每当设备处于 D1、D2 或 D3 的 WDM 设备状态时,USB 堆栈会将设备视为 Windows Vista 中的空闲状态。

      下图演示了 Windows Vista 中可能发生的方案。

      windows USB 设备驱动开发-USB电源管理(三)

      此图说明了类似于“Windows XP 中全局挂起的条件”部分中描述的情况。 但是,在这种情况下,设备 3 限定为空闲设备。 由于所有设备都处于空闲状态,因此总线驱动程序能够调用与挂起的空闲请求 IRP 关联的空闲通知回调例程。 每个驱动程序暂停其设备,总线驱动程序在安全操作后立即挂起 USB 主机控制器。

      在 Windows Vista 上,所有非集线器 USB 设备都必须位于 D1、 D2 或 D3 中,然后才能启动全局暂停,此时所有 USB 集线器(包括根集线器)都将挂起。 这意味着任何不支持选择性挂起的 USB 客户端驱动程序都阻止总线进入全局挂起。

      Windows XP 中的全局挂起条件

      为了在 Windows XP 上最大程度地节省电量,每个设备驱动程序都使用空闲请求 IRP 来暂停其设备,这一点很重要。 如果一个驱动程序使用 IRP_MN_SET_POWER 请求而不是空闲请求 IRP 挂起其设备,则可能会阻止其他设备挂起。

      下图演示了 Windows XP 中可能发生的方案。

      windows USB 设备驱动开发-USB电源管理(三)

      在此图中,设备 3 处于电源状态 D3,没有挂起的空闲请求 IRP。 设备 3 对于 Windows XP 中的全局挂起目的,不符合空闲设备的条件,因为它的父级没有空闲请求 IRP 挂起。 这会阻止总线驱动程序调用与树中其他设备的驱动程序关联的空闲请求回调例程。

      启用选择性挂起

      对 Microsoft Windows XP 的升级版本禁用选择性挂起。 它适用于 Windows XP、Windows Vista 和更高版本的 Windows 的干净安装。

      若要为给定的根集线器及其子设备启用选择性挂起支持,请选中设备管理器中 USB 根集线器的“电源管理”选项卡上的复选框。

      或者,可以通过在 USB 端口驱动程序的软件键下设置 HcDisableSelectiveSuspend 的值来启用或禁用选择性挂起。 如果值为 1,则禁用选择性挂起。 值为 0 可启用选择性挂起。

      例如,Usbport.inf 中的以下行禁用 Hydra OHCI 控制器的选择性挂起:

      [OHCI_NOSS.AddReg.NT]
      HKR,,"HcDisableSelectiveSuspend",0x00010001,1

      客户端驱动程序不应尝试在发送空闲请求之前确定是否启用了选择性挂起。 每当设备处于空闲状态时,它们都应提交空闲请求。 如果空闲请求失败,客户端驱动程序应重置空闲计时器并重试。

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.csdn.net/m0_72813396/article/details/140095046,作者:sului,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:windows USB 设备驱动开发-USB主控制开发(二)

      下一篇:WDF驱动开发-特定于KMDF的技术(三)

      相关文章

      2025-03-17 07:50:46

      【源码分析】chunjun实现flink sql连接器的顶层思想:通过实现InputFormatSourceFunction来串起flink sql 连接器的生命周期

      【源码分析】chunjun实现flink sql连接器的顶层思想:通过实现InputFormatSourceFunction来串起flink sql 连接器的生命周期

      2025-03-17 07:50:46
      实现 , 数据 , 数据源 , 连接器
      2025-03-11 09:34:32

      【Trino权威指南(第二版)】Trino的架构、trino架构组件、 trino连接器架构的细节、trino的查询执行模型

      【Trino权威指南(第二版)】Trino的架构、trino架构组件、 trino连接器架构的细节、trino的查询执行模型

      2025-03-11 09:34:32
      数据源 , 查询 , 节点 , 连接器
      2025-03-04 09:11:34

      C++中的锁是如何实现的?底层原理揭秘

      在多线程编程中,锁是确保线程同步的重要工具。C++提供了多种锁的实现方式,如互斥锁、自旋锁和读写锁。

      2025-03-04 09:11:34
      C++ , 实现 , 硬件 , 线程
      2025-02-21 08:56:43

      【Linux】Linux内核学习--- 学习中

      【Linux】Linux内核学习--- 学习中

      2025-02-21 08:56:43
      Linux , 内核 , 文件系统 , 模块 , 硬件 , 调度 , 进程
      2024-12-24 10:17:17

      【操作系统】详细介绍操作系统的基本概念

      【操作系统】详细介绍操作系统的基本概念

      2024-12-24 10:17:17
      接口 , 操作系统 , 用户 , 硬件 , 管理 , 计算机 , 软件
      2024-12-19 08:42:50

      HarmonyOS第11天学习笔记-HarmonyOS简介与定位

      HarmonyOS是华为开发的一款面向未来的全场景分布式智慧操作系统,旨在覆盖1+8+N全场景总端设备。该系统提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备。在万物互联的时代背景下,HarmonyOS不仅整合了不同终端硬件能力,形成虚拟的超级终端,更通过跨设备信息流转,提升了设备的利用率和用户体验。

      2024-12-19 08:42:50
      HarmonyOS , 分布式 , 硬件 , 终端 , 设备
      2024-12-11 06:20:18

      浅谈Linux中的软锁定(soft lockup)和硬件监视器(watchdog)

      浅谈Linux中的软锁定(soft lockup)和硬件监视器(watchdog)

      2024-12-11 06:20:18
      内核 , 硬件 , 系统 , 锁定
      2024-11-04 09:33:34

      嵌入式优势到底在哪里?

      嵌入式优势到底在哪里?

      2024-11-04 09:33:34
      单片机 , 嵌入式 , 硬件
      2024-10-23 08:58:48

      嵌入式技术

      嵌入式技术

      2024-10-23 08:58:48
      嵌入式 , 操作系统 , 硬件
      2024-09-10 08:20:57

      windows USB设备驱动开发-开发USB 设备端驱动

      USB 设备是通过单个端口连接到计算机的外设,例如鼠标设备和键盘。 USB 客户端驱动程序是计算机上安装的软件,该软件与硬件通信以使设备正常运行。

      2024-09-10 08:20:57
      硬件 , 连接器 , 驱动开发
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5232996

      查看更多

      最新文章

      【源码分析】chunjun实现flink sql连接器的顶层思想:通过实现InputFormatSourceFunction来串起flink sql 连接器的生命周期

      2025-03-17 07:50:46

      C++中的锁是如何实现的?底层原理揭秘

      2025-03-04 09:11:34

      windows USB设备驱动开发-开发USB 设备端驱动

      2024-09-10 08:20:57

      WDF驱动开发-特定于KMDF的技术(一)

      2024-09-10 08:20:57

      windows USB 设备驱动开发- 驱动操作USB配置

      2024-09-10 08:20:57

      windows USB设备驱动开发-双角色驱动

      2024-09-10 08:20:57

      查看更多

      热门文章

      C/C++ 获取系统IP地址/硬件信息等

      2023-07-20 06:05:57

      驱动开发:内核CR3切换读写内存

      2023-05-04 09:00:09

      驱动开发:内核读取SSDT表基址

      2023-05-04 09:00:09

      windows USB 设备驱动程序开发-USB 设备模拟 (一)

      2024-09-10 08:20:45

      用MicroPython进行硬件编程

      2024-04-17 08:51:50

      windows USB 设备驱动开发-USB 功能控制器驱动开发(一)

      2024-09-10 08:20:45

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      windows USB 设备驱动开发-控制传输的数据包

      windows USB 设备驱动开发-使用URB的规则

      windows USB 设备驱动开发-USB电源管理(一)

      【源码分析】chunjun实现flink sql连接器的顶层思想:通过实现InputFormatSourceFunction来串起flink sql 连接器的生命周期

      windows USB 设备驱动程序开发-总线接口查询

      windows USB 设备驱动开发-复合设备的Usbccgp.sys

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号