【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 客户端驱动程序

  • 复合设备的客户端驱动程序与非复合设备的客户端驱动程序不同,驱动程序堆栈中的位置除外。
  • 非复合设备的客户端驱动程序直接分层在中心驱动程序上方。
相关推荐
m0_7381207211 小时前
我的创作纪念日0328
java·网络·windows·python·web安全·php
zd84510150011 小时前
ESP8266 MQTT连接onenet
stm32·单片机
桌面运维家11 小时前
VHDX父盘定位:相对路径与Windows盘符变更难题
windows
Lyyaoo.11 小时前
【JAVA基础面经】JAVA的面向对象特性
java·开发语言·windows
3壹12 小时前
STM32按键检测与上拉电阻详解
c语言·stm32·嵌入式硬件
昵称只能一个月修改一次。。。12 小时前
【无标题】
单片机·嵌入式硬件
AI+程序员在路上12 小时前
新手进入嵌入式行业方法与方向选择
c语言·开发语言·单片机·嵌入式硬件
The️12 小时前
STM32F407 + LVGL 图形界面开源开发板
stm32·单片机·嵌入式硬件·开源·硬件工程·开源协议·pcb工艺
Zevalin爱灰灰12 小时前
编程技巧(基于STM32)第三章 模式切换程序模板
stm32·单片机·嵌入式
FPGA的花路12 小时前
Windows10/11永久关闭自动更新
windows·自动更新·永久关闭