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

  • 复合设备的客户端驱动程序与非复合设备的客户端驱动程序不同,驱动程序堆栈中的位置除外。
  • 非复合设备的客户端驱动程序直接分层在中心驱动程序上方。
相关推荐
吠品7 小时前
智谱开源 ZCode 之后,真正的考试才开始
单片机·嵌入式硬件·1024程序员节
小李不想当小白12 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
LCG米12 小时前
STM32驱动W5500以太网模块实测:TCP吞吐瓶颈定位、TX指针回绕陷阱与断线重连保活落地
stm32·单片机·嵌入式硬件·tcp/ip
创界工坊工作室13 小时前
63-基于STC89C52霍尔传感器的智能化电能表设计
stm32·单片机·嵌入式硬件·51单片机·proteus
?re?ta?rd?ed?14 小时前
C++11新特性,{}与左值
c++·windows
智购科技自动售货机厂家15 小时前
让AI经营自动售货机:从Project Vend看工具权限与业务规则~YH
大数据·服务器·单片机·嵌入式硬件·深度学习
Zwawa16 小时前
从 printf 到曲线:把数据送上 VOFA+
c语言·单片机·嵌入式
意法半导体STM3216 小时前
【官方原创】LAT6048 如何扩大MP2的A35核和M33核共享内存
stm32·单片机·嵌入式硬件·内存映射·stm32mp2
en.en..16 小时前
STM32(F429)启动模式与两种烧录方式
stm32·单片机·嵌入式硬件
Zw-awa16 小时前
从 printf 到曲线:把数据送上 VOFA+
stm32