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

  • 复合设备的客户端驱动程序与非复合设备的客户端驱动程序不同,驱动程序堆栈中的位置除外。
  • 非复合设备的客户端驱动程序直接分层在中心驱动程序上方。
相关推荐
Wave8453 小时前
STM32---了解
stm32·单片机·嵌入式硬件
STC_USB_CAN_80514 小时前
STC32G144K246-视频级动画效果演示
单片机·51单片机
非凡ghost4 小时前
MediaHuman YouTube to MP3 多语便携版:高效音频提取工具
windows·音视频·软件需求
jianqiang.xue4 小时前
ESP32-S3 入门教程:从环境搭建到物联网应用实战
c语言·单片机·嵌入式硬件·物联网·青少年编程·51单片机·嵌入式
一枝小雨5 小时前
STM32中的Flash、ROM与RAM全解析
stm32·单片机·嵌入式·arm·内存分布
balance_rui5 小时前
stm32进阶笔记
stm32·c#
Su^!-苏释州5 小时前
Windows配置C/C++环境:MinGW+Vscode
c语言·c++·windows·vscode·大一新生学c语言
一点都不方女士6 小时前
.NET Framework 4.0.30319:官方下载与常见问题解决指南
c++·windows·.net·动态链接库·运行库
国科安芯6 小时前
AS32S601ZIT2型MCU:基于RISC-V架构的抗辐照设计与试验评估
网络·单片机·嵌入式硬件·fpga开发·架构·硬件架构·risc-v