【usb】windows usb驱动框架简介

一、Host端架构图总揽

二、关键模块介绍

USB通用类泛型父驱动程序(Usbccgp.sys)

  • 复合设备的父驱动程序。 如果 deviceClass 为 0 或 0xef,并且设备描述符中的 numInterfaces 大于 1,则中心驱动程序会枚举并加载父复合驱动程序。
  • 父复合驱动程序枚举复合设备中的所有函数,并为每个函数创建 PDO。 这会导致为设备中的每个函数加载适当的类或客户端驱动程序。 每个函数驱动程序 (子 PDO) 向父驱动程序发送请求,这会将请求提交到 USB 中心驱动程序。

WinUSB (Winusb.sys)

  • Windows USB (WinUSB) 是适用于 USB 设备的 Microsoft 提供的通用驱动程序。 WinUSB 体系结构由内核模式驱动程序 (Winusb.sys) 和用户模式动态链接库 (Winusb.dll) 组成。 对于不需要自定义函数驱动程序的设备,可将Winusb.sys作为函数驱动程序安装在设备的内核模式堆栈中。 然后,用户模式进程可以使用一组设备 I/O 控制请求或通过调用WinUsb_Xxx函数来与 Winusb.sys 通信。

USB 客户端驱动程序

  • 复合设备的客户端驱动程序与非复合设备的客户端驱动程序不同,驱动程序堆栈中的位置除外。
  • 非复合设备的客户端驱动程序直接分层在中心驱动程序上方。
相关推荐
FreakStudio11 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
✎ ﹏梦醒͜ღ҉繁华落℘16 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
qq_3692243316 天前
Windows全系通用!ntdll.dll文件丢失、报错、闪退问题的完整排查与修复教程
windows·dll·dll修复·dll丢失·dll错误
zd84510150016 天前
RS485 总线详解
单片机·嵌入式硬件
牛根生同志16 天前
SPI数据收发的时候 TXE与RXNE标志位置位的时机
stm32·spi·transfer
阿米亚波16 天前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
goldenrolan16 天前
学习型红外控制系统稳定性挂测工装专项总结
软件测试·python·stm32·嵌入式·红外
caimouse16 天前
Reactos 第 10 章 网络操作 — 10.3.1 NIC驱动
网络·windows
初圣魔门首席弟子16 天前
Node.js 详细介绍(知识库版)
windows·qt·node.js·知识库
✎ ﹏梦醒͜ღ҉繁华落℘16 天前
编程基础 --高内聚,低耦合
c语言·单片机