Windows XP下USB整体结构

Windows XP Mode技术解析:Win7时代的无缝虚拟化兼容方案 Windows XP Mode是微软在Windows 7时代推出的轻量级桌面虚拟化技术,本质并非传统虚拟机,而是基于Virtual PC引擎、融合API桥接与UI层集成的兼容性解决方案。其核心原理在于通过硬件辅助虚拟化(VT-x/AMD-V)支撑下的用户态虚拟化、共享内存剪贴板同步、SSPI身份透传及无缝窗口渲染机制,实现XP应用在Win7桌面的原生级体验。该技术凸显了‘最小侵入性兼容’的设计哲学,为后续WSL、AppContainer等现代兼容架构提供重要范式。适用于遗留工业软件、财务系统、医疗设备接口等 阅读详情

http://hi.baidu.com/jlgwxq/blog/item/6aa939cc053d8f0893457e40.html

Windows XP下USB整体结构
2010-01-22 13:57

这里主要讲的是Windows XP下USB驱动协议栈的整体结构,以及内部的一些重要数据结构。在写这些东西时,参考了大牛Tiamo的相关论坛贴子 ,内容很多雷同,说是转贴也不为过。

USB协议栈是由如下几个驱动文件构成的:

usbport.sys USB主机控制器共用驱动代码库,供miniport驱动调用。
usbhub.sys USB总线驱动,USB总线也是USB设备的一种。
usbehci.sys USB EHCI主机控制器驱动,它是属于miniport驱动。
usbuhci.sys USB UHCI主机控制器驱动,它是属于miniport驱动。
usbohci.sys USB OHCI主机控制器驱动,它是属于miniport驱动。
usbd.sys USB设备驱动共用代码库,供USB设备驱动和总线驱动调用。

usbccgp.sys USB复合设备驱动。
usbstor.sys USB存储设备驱动。
usbaudio.sys USB声音设备驱动。
usbvideo.sys USB视频设备驱动。
hidusb.sys USB HID设备驱动。

主机控制器驱动是USB协议栈的最底层驱动,在它之上就是USB总线驱动,再之上是USB设备驱动。

USB设备驱动上面呢,一般还有其它的驱动。象usbstor上面还有存储设备class驱动,hidusb上面还有HIDclass驱动。不过这上面的驱动,就和USB的驱动协议栈没有多大的关系了。而设备驱动和具体的设备类有千丝万缕的关系,不是我们要讨论的重点。

这里重点要讨论的是控制器和总线,这是USB驱动协议栈的核心。

我们知道,USB2.0有EHCI控制器,USB1.1有UHCI和OHCI控制器。这样一共有三种控制器,它们之间有什么区别呢? 这要先说一说控制器的作用,USB协议栈并不是凭空而建立起来的,它下层就是PCI总线驱动(一般而言,也不一定非得是PCI总线),而控制器的作用就是和PCI总线打交道,将USB的功能和操作转变成PCI总线上的一系列操作,同时还兼任着usb总线的日常管理。

不同的硬件厂商都可以有它自己的一个控制器规范,这在USB协议出现早期尤为突出。但这样各自为政毕竟对整个规范的发展不利,于是大家便开始统一接口规范,这统一规范能满足大家的绝大部分需求,所以大家也就都用标准规范。USB 1.1时,就形成了OHCI和UHCI两大阵营,而USB2.0时,则只有EHCI了,显然,大家还是觉得标准越少麻烦越少。

对比一下UHCI和OHCI,两者都是提供对USB1.1协议的支持,只不过,UHCI硬件实现相对较少而成本相对较低,但软件驱动复杂度相对较高,所以,UHCI多用在PC上,OHCI多用在嵌入设备中。而 EHCI 则是伴随着USB 2.0规范一同出现(因为大家都受够了要同时支持两大规范的痛苦),它同时也向下兼容UHCI和OHCI。

好了,废话就说这么多,再具体的网上可查。下面,就说说控制器驱动的事儿。各大控制器规范和底层PCI总线的接口差别比较大,但它控制USB总线那一块的功能都基本上差不多 -- 都是完全符合USB本身规范的。所以,各大控制器的驱动底层接口部分是各自为政,而USB总线管理部分则被提炼出来,形成一个共同的代码库,名为usbport.sys。也就是说,usbport.sys并不是一个独立的驱动,而只是一个供别人调用的动态链接库。而这个动态链接库由于实现了控制器驱动的绝大多数功能,所以,我们习惯地将它当作控制器驱动的主体。

讲了usbport.sys是怎么回事,顺带讲讲usbd.sys。usbd.sys和usbport.sys角色定位类似,它也只是作为一个动态链接库供USB设备驱动和USB总线驱动使用。不过,由于usbd.sys实现的功能很有限,作用没有usbport.sys那么突出,所以就显得比较边缘化,在一般的讨论中将它忽略掉。

关于USB驱动栈的整体结构就讲到这里,后续会具体讲讲usbhub.sys和usbport.sys所实现的功能。

虚拟机安装Windows XP全攻略:解决老旧软件兼容与测试环境搭建 虚拟机技术通过在宿主机上创建隔离的虚拟化环境,允许用户在同一台物理计算机上运行多个独立的操作系统。其核心原理是通过虚拟化层(Hypervisor)模拟硬件资源,实现系统间的安全隔离与资源分配。这项技术的价值在于能够高效利用硬件资源,同时为软件兼容性测试、遗留系统运行和安全实验提供安全、可恢复的沙箱环境。在应用场景上,虚拟机广泛用于软件开发和测试,特别是需要验证软件在不同操作系统版本(如Windows XP)下的兼容性,以及运行那些仅支持老旧系统(如特定工业控制软件或经典游戏)的应用程序。本教程聚焦于使用VM 阅读详情

相关推荐

Windows XP虚拟机部署指南:从镜像获取到系统优化的完整实践

虚拟化技术通过在单一物理硬件上模拟多个独立运行的计算环境,实现了资源的高效利用与系统隔离。其核心原理在于通过虚拟机监控器(Hypervisor)对底层硬件进行抽象和管理,为每个虚拟机分配虚拟化的CPU、内存、存储和网络资源。这项技术的核心价值在于提供了极佳的兼容性、安全性和可移植性,尤其适用于运行遗留系统、进行软件测试或构建隔离的开发环境。在众多应用场景中,为兼容老旧软件或驱动而在现代操作系统(如Windows 10/11)上部署Windows XP虚拟机,是一个经典且实用的需求。本文将聚焦于这一具体实践,

weixin_34221773的博客 1647

Xcode9 打包App Store Icon(1024xp) WARNING ITMS-90704 -90717 问题解决

Xcode9 打包,上传 iTunes Connet 报错,提示需要在icon添加一张 Marketing 1024x1024 的图标 WARNING ITMS-90704: "Missing Marketing Icon. iOS Apps must include a 1024x1024px Marke...

weixin_33749242的博客 6114

CP2102 USB转串口驱动程序针对Windows XP优化版

CP2102是一款广泛使用的USB转串口桥接芯片,由Silicon Labs生产。它允许USB接口被用作传统的串行端口,这对于连接和使用那些只有串行接口的设备非常重要。CP2102驱动程序是这一硬件能够正常工作的软件基础,它允许操作系统识别和管理CP2102芯片。USB 1.1全速规范是一个针对USB设备的通信标准,其最初在1998年与USB 1.0版本一同发布。该规范定义了设备与主机之间的物理连接和电气特性,以及如何在这些设备之间传输数据。

weixin_36238982的博客 982

1024

1024

liangweihao的博客 2180

全面支持Windows XP的通用网卡驱动安装指南

简介:驱动程序是操作系统与硬件通信的关键,万能网卡驱动XP为Windows XP用户提供了广泛兼容的网卡驱动解决方案。它支持众多品牌和型号的网卡,并通过智能识别技术简化了安装过程。尽管名为“万能”,但对一些特殊或新型网卡可能无效。本文详细介绍了安装万能网卡驱动XP的步骤,并提醒用户注意某些现代网络技术可能不被支持。对仍在使用XP系统的用户,建议升级操作系统以获得更好的支持。

weixin_42601547的博客 4040

USB接口25系列SPI Flash编程器驱动与工具完整包

USB接口SPI Flash编程器是一种专为串行闪存芯片(如25系列SPI Flash)设计的硬件工具,具备通过USB接口与主机通信、控制并烧录SPI Flash芯片的能力。该编程器广泛应用于嵌入式系统开发、固件更新、芯片调试及量产烧录等场景。其核心功能包括芯片识别、读写操作、擦除控制以及状态监控,支持多种SPI Flash型号和容量。编程器通常采用USB 2.0高速接口标准,确保与PC端的稳定连接和高效数据传输。本章将为读者构建该设备的整体认知框架,为后续深入学习奠定基础。

weixin_30299319的博客 1292

1024,你懂的

哎呀,是不是被标题党套路了,不过认真读完,会有收获的哦,相信我。话说小拾君最近逛知乎,无意间被某些帖子指引,发现知乎已经快被1024攻占了,哈哈,然后今天准备跟大家科普一下1024。各位老司机们看看就好,千万不要开车....... 1024的起源。 经小拾君向诸多老司机求证,以及在度娘的帮助下,小拾君终于知道了1024的来历了。1024最早起源了某社区(什么社区,1024你懂的)为了防...

weixin_40876133的博客 33万+

先歌触摸屏Windows 2000/XP专用驱动安装包

随着人机交互技术的不断发展,触摸屏在工业控制、医疗设备、自助终端等领域的应用日益广泛。作为实现精准触控响应的核心组件,设备驱动程序在系统中扮演着至关重要的角色。本章将围绕“先歌触摸屏Windows驱动包”这一主题,全面介绍其技术背景与核心价值。先歌(Singo)作为国内领先的触控解决方案提供商,其驱动程序专为保障触摸设备在Windows平台下的稳定运行而设计。该驱动包不仅支持基础的触控信号采集与传输,还集成了校准、配置、诊断等关键功能模块,确保用户在不同应用场景下获得流畅的操作体验。

weixin_33239721的博客 1194

windows的usb体系结构

1.背景知识介绍..一些关于电路理论,计算机组成原理的东西 2.usb相关背景知识 3.windows usb整体架构介绍 4.usbport.sys分析 5.usbuhci.sys分析 6.usbhub.sys分析 usb协议方面的涉及的不算太多..毕竟都是有文档的东西 主要着眼于windows的实现部分.. 过年了..我去买了个logitech的无线光电鼠..正好是个usb接口的..于是就想了

3993

XP128XP1024 Owner's Guide

XP128XP1024 Owner's Guide

cunboard_xp.rar_1042xp_1042核工厂xp_THIS FORUM CONTAINS_xp down论坛_x

a.本论坛包含了,常规论坛的基本功能,并增加了,论坛发帖是否需要审核的功能。 b.本论坛增加了论坛社区首页功能 c.论坛增加发贴附带投票功能 d.在线头像管理

windows xp 驱动开发(四) USB开发技术概述

转载请标明是引用于 http://blog.youkuaiyun.com/chenyujing1234   欢迎大家提出意见,一起讨论!   参考文章: http://blog.youkuaiyun.com/xxxluozhen/article/details/4882121   1、  概述 结合LPC2440开发板,编写其USB上位机驱动,旨在增强对USB总线协议的理解和提升WinXP下驱动开发能力

chenyujing1234的专栏 6376

Win11 WSL2 Ubuntu 18.04 ROS Gazebo 图形渲染性能调优:从LLVM到NVIDIA GPU的完整指南

本文详细解决了在Win11 WSL2 Ubuntu 18.04环境中运行ROS Gazebo时图形渲染卡顿的问题。通过诊断默认LLVM软件渲染的瓶颈,指导用户更新Mesa驱动PPA源,并关键性地设置环境变量以强制启用NVIDIA GPU硬件加速,最终显著提升仿真性能与流畅度。

weixin_29204749的博客 281

UsbDk终极指南:Windows USB设备开发与管理的完整解决方案

UsbDk(USB Development Kit)是一款开源的Windows USB设备开发工具包,专门为应用程序提供对USB设备的直接和独占访问能力。无论你是驱动开发新手还是资深工程师,UsbDk都能为你的USB设备开发工作提供强大支持。 ## 项目概述与核心价值 UsbDk的核心价值在于将USB设备从Windows PNP管理器(即插即用设备管理服务)和设备驱动程序中分离出来,让开发者能

gitblog_00766的博客 828

神联动:LSTM+卡尔曼滤波!一区大门轻松开!

近来热度飙升,成为时间序列预测和状态估计等领域的香饽饽,非常好发高区!主要在于:这两者结合,不仅能提高模型预测准确性;还能拓展应用场景,为我们的论文创新提供发挥空间,且当下还在蓝海阶段,还不算卷。具体点说:卡尔曼滤波擅长处理线性状态估计和噪声,能使LSTM更好地适应动态环境的变化,减少噪声干扰,降低预测误差。而LSTM通过捕捉长期依赖关系,擅长处理非线性时间序列,能够弥补卡尔曼滤波在这方面的不足,从而把应用场景从传统的状态估计,延伸到金融预测、工业检测、自动驾驶等任务。

2401_82426425的博客 2208

ADF4002分频器避坑指南:常见配置错误及解决方案

本文深入解析了ADF4002分频器在实战应用中的常见陷阱与解决方案。内容涵盖寄存器配置逻辑、硬件PCB布局要点、软件驱动时序细节及系统化调试方法,重点阐述了如何避免因配置错误导致芯片无法正常工作的问题,帮助工程师高效完成高精度频率合成系统设计。

weixin_29192141的博客 95

UsbDk:Windows系统下高效掌控USB设备的实用工具

在Windows操作系统环境中,当需要让用户模式的应用程序直接且独占性地访问USB设备时,UsbDk这款开源工具便能发挥重要作用。它能够将USB设备从Windows PNP管理器和设备驱动程序中分离出来,并提供相应的API,支持用户模式下针对USB设备的特定操作,为开发者带来了极大的便利。 ## 一、广泛兼容,跨版本稳定运行 UsbDk具备出色的跨平台兼容性,能够在从Windows XP/200

gitblog_00356的博客 1046

ARM架构实战:在鲲鹏920服务器上用Debian12部署PVE虚拟化平台

本文详细介绍了在基于ARM架构的华为鲲鹏920服务器上,以Debian 12为底层系统,部署Proxmox VE(PVE)虚拟化平台的完整实战流程。文章重点解析了ARM64架构下PVE软件源的配置、内核安装的注意事项、部署后网络与存储的调优,并提供了针对ARM虚拟化环境的性能优化建议,为在国产化硬件上构建稳定高效的虚拟化环境提供了宝贵经验。

efc12345678的博客 780

Wireshark性能横评:从Windows XP到Windows 11的网络抓包实战对比

网络封包分析是网络故障排查与安全审计的核心技术,其原理在于捕获并解析网络接口上的数据流,通过协议解码还原通信过程。这项技术的价值在于能够透视网络行为,定位性能瓶颈与安全威胁。在实际工程中,网络分析工具的性能高度依赖于底层操作系统对网络栈、内存管理和I/O处理的优化。例如,现代操作系统通过NDIS 6.x驱动模型、高效的内存压缩算法及多核调度,显著提升了高吞吐量抓包的稳定性和大文件分析效率。本文聚焦于经典工具Wireshark,通过对比其在Windows XP与Windows 11虚拟机环境下的表现,深入剖析

weixin_33721344的博客 371

3.嵌入式控制器EC学习,源码框架(60/64端口)(一)

服务函数剖析 上一篇讲到while循环会一直查询十六个标志位是否满足要求,一旦其中某个标志位为1时,程序将会执行相应的服务函数,而执行服务函数是通过函数指针(service_table[ _R1 ])();来实现的。接下来我们分别来看看这十六个服务函数分别包含了哪些内容。 16个函数的函数名如下: const FUNCT_PTR_V_V code service_table[16] = { // Hi-Level Service Service_PCI, // Host 6

qq_30135687的博客 4159

Python爬虫实战:全网政府招标信息采集与整合

本文详细介绍了如何使用Python构建一个完整的政府招标信息爬虫系统,涵盖了从数据采集、解析、存储到质量监控的全流程。多源采集:支持多个地方政府网站的同时采集智能解析:自动适应不同网站结构,智能提取关键信息异步高效:使用异步编程提高采集效率反爬应对:内置多种反爬虫应对策略数据质量:完善的数据清洗和质量监控机制易于扩展:模块化设计,便于添加新的数据源。

2201_76125261的博客 1380

如何通过UsbDk实现Windows USB设备直连开发:全面技术指南

在Windows系统环境下进行USB设备开发时,开发者常常面临系统权限限制、标准接口性能瓶颈以及设备访问冲突等挑战。UsbDk(USB Development Kit)作为一款开源的设备驱动开发工具包,通过创新的驱动架构设计,为用户模式应用程序提供了直接访问USB设备的能力,有效解决了传统开发模式中的诸多痛点。本文将从核心价值、技术原理、应用场景、实践指南和常见问题五个维度,全面解析UsbDk的技

gitblog_01199的博客 421

ERROR: Ignored the following yanked versions: 0.8.3, 0.10.19.dev18 的解决办法

关于这个问题,博主是在进行项目中的python依赖包安装的时候遇见的,遇到的异常:关于这个问题,是在。

Spring Boot-Common On With You 642

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

USB 选择性挂起功能和选择性暂停、USB的全局挂起

王马的博客 1928

大数据领域数据产品的交通运输行业应用

您是否经历过早高峰被堵在桥上,看着导航显示“前方5公里缓行”却无能为力?是否见过货车司机绕远路导致成本飙升?这些“交通痛点”的背后,是传统交通管理依赖经验决策的局限。本文将聚焦“大数据数据产品”这一核心工具,从技术原理到实际应用,全面解析它如何为交通运输行业“开天眼”,解决从城市拥堵到物流效率的一系列难题。本文将按照“问题引入→概念拆解→技术原理→实战案例→应用场景→未来趋势”的逻辑展开,用生活化比喻降低理解门槛,用代码和数学模型提升专业性,最终帮您建立“大数据+交通”的完整认知框架。交通数据。

操作系统内核探秘的博客 236

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: static_cast、dynamic_cast reinterpret_cast和const_cast
下一篇: Windows XP下usbport.sys驱动内部实现解析(一)
killcpp
博客等级 码龄20年 13粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值