USB中文网虚拟USB控制器USB集线器成果展示

2024-01-03 10 0

一直有一个心愿,就是虚拟USB全家桶。
USB控制器,USB集线器开始,再到各个USB类设备。
当然USB类设备也是很多的,包括HID,UVC,UAC,大容量存储等各种USB设备。
由于本人对以上UVC, UAC ,HID待相对熟悉一些,故以这些设备来展示。

整个驱动分为以下几层:
VUSB

typedef enum _VDEVICE_TYPE
{
    VDEV_FROOT,  //根虚拟节点FDO
    VDEV_PHCI,  //USB控制器PDO
    VDEV_FHCI,  //USB控制器FDO
    VDEV_PHUB,  //USB根集线器PDO
    VDEV_FHUB,  //USB根集线器FDO
    VDEV_PUSB  //USB设备PDO
}VDEVICE_TYPE;

所以整个驱动内部层次分为6部分。

由于本人给根集线器默认给了16个端口,所以在虚拟设备时,也是类型轮循虚拟。

    for (UCHAR i = 1; i <= 16; i++)
    {
        switch (i % 4)
        {
        case 0:
            status = CreateHubHidDevice(vHub, i);
            break;
        case 1:
            status = CreateHubCameraDevice(vHub, i);
            break;
        case 2:
            status = CreateHubMicDevice(vHub, i);
            break;
        case 3:
            status = CreateHubSpeakerDevice(vHub, i);
            break;
        case 4:
            break;
        default:
            break;
        }
    }

最终安装驱动后,在设备管理器中如下:
设备管理器

通过USBTREEVIEWER可以看到设备信息:
USBTREEVIEWER

0 篇笔记 写笔记

USB设备和USB集线器HUB的数据传输
USB高速集线器与USB根集线器之间只通过USB使用USB高速通讯讯方式,而对于低速或全速的数据通讯的转换是由其挂接的最近的USB-HUB负责完成转换。如下图:对于USB高速设备和USB高速HUB,使用高速通讯。对于连接到高速HUB上的低速或全速USB-HUB,使用低速或全速通讯方式。对于连接到高速......
Windows下UVC虚拟摄像头的实现
最近在Windows10 x64环境下,开发了一个虚拟UVC摄像头驱动。确切的来说这不是摄像头驱动,而是一个虚拟USB总线驱动。使用该虚拟总线驱动使用应用软件通过IOCTL控制总线子设备的创建与卸载。驱动安装完成后,是一个单纯的USB虚拟总线。应用软件通过发送自定义IOCTL码IOCTL_BUSEN......
USB控制器及分类
USB是一直在变化的,从最开始的1.0发展到现在开始大规模使用的3.0,甚至到今天已经发布的USB4.0。所以USB的控制器也在不断的变化升级。所以由于历史的原因,导致USB的主机控制器,出现了多种不同的类型,即OHCI和UHCI,EHCI,和xHCI。不论是那种USB主机控制器,简称主控,都是符合......
USB 集线器HUB
通过USB集线器,可以很简单的实现主机扩展USB设备的数量。在USB协议规范中,USB集线器作为了一种特殊的设备在存在,USB规范专门为其定义了一种设备类。USB集线器的结钩集线器由6个组件组成:上行端口:用于连接上层的USB集线器或者根集线器。下行端口:用于连接下层的USB功能设备或扩展的U......
USB主机端控制器集线器与USB设备类型分类
USB根据设备功能及类型,可以分USB主机端,USB设备端。USB主机端-USB hostUSB主机端也叫USB控制器,包括两大部分,分别为与系统总线进行数据交互的USB控制器和USB总线的根集线器。一个USB主机端就是一个独立的USB总线,其按USB版本可分为OHCI,UHCI,EHCI,xHC......
USB设备与集线器最大可以级联多少层
在USB2.0规范中,定义了USB设备与集线器最大可以级联7层(包括根集线器),即根集线器之设备之间最多有5个继集线器。注意:有一个USB复合(compound)设备,其本身是一个USB集线器并接连1个或多个USB功能设备,这里需要将这个USB集线器算在内。......
Win10 x64虚拟设备之触摸屏
前一段时间在本人整理了自己编写的USB虚拟驱动框架,在其基础上实现了虚拟键盘,鼠标的功能。本节是继虚拟键盘鼠标的另一个虚拟USB设备-触摸屏触摸屏设备是HID设备的一个小类,但是随着触摸设备使用的越来越广泛,这类设备也变地越来越重要。触摸屏设备的原理和我们手机上的触摸屏原理一样,是在电脑屏幕上有一层......
HID设备虚拟触摸屏上报的多点数据系统不响应
前一般时间在Windows10下使用USB驱动虚拟了一个触摸屏设备,上层软件按照HID报告述符的格式下发触摸屏数据给驱动,再由驱动将数据上交给系统,实现虚拟触摸屏的功能。今天,突发奇想,上次的报告描述符仅支持的是一个点触摸效果,今天保不实现了一下多点触摸效果,所以我通过在一个支持多点触摸屏的设备......
Win10 x64下USB-UAC虚拟声卡扬声器的实现
UsbzhVSpeaker虚拟声卡下载地址: http://www.usbzh.com/article/detail-1076.html去年的时候,使用portclass驱动模型在windows下虚拟了一个虚拟扬声器和虚拟麦克风。扬声器和麦克风在内部通过拓扑结构进行数据关联,即麦克风的数据的来......
USB集线器HUB的枚举过程及集线器状态
USB集线器和其他USB设备一样,都需要在上电时进行配置。在USB协议中,使用默认的端0点。进行上电初期的通信。USB集线器除了配置其自身外,还需要对下行端口连接的其他USB设备进行识别。USB集线器HUB枚举过程USB集线器的上电配置过程如下:USB集线器连接到USB主机的根集线器上。USB......
Win10 x64下USB-UAC虚拟麦克风的实现
对于虚拟的UAC设备,实现了虚拟的UAC扬声器,总是想着再一个USB虚拟的UAC麦克风。因为这样,才算完美。本着完了完美的结果,自己又忍不住给自己找了一个活-USB虚拟麦克风虚拟麦克风的大体开发和USB虚拟扬声器类似,只是一个是输入设备,另一个是输出设备而已。所以参考UAC规范,基于UAC虚拟扬声......
USB中文网虚拟麦克风驱动程序视频演示
0.整个软件的框架如图1.安装虚拟麦克风由于本人机器处于是禁用驱动签名模式,所以会弹出签名询问对话框2.打开设备管理器可以看到虚拟的麦克风USBZH Microphone3.在音频控制面板打开设备,并使用扬声器监听该设备。这样麦克风如果有声音会通过扬声器播放出来。4.打开测试程序MicApp......
USB虚拟鼠标功能演示
该功能是USB中文网的开发例程,其设计原理见:http://www.usbzh.com/article/detail-476.html使用驱动程序实现的是虚拟USB鼠标功能。鼠标的事件由应用应用层下发:当前完成的功能:鼠标指针的移动鼠标的点击事件动态创建和销毁鼠标设备支持WIN7,WIN10 ......
USB中文网虚拟UVC摄像头DEMO演示
请查看UCAM简介 https://www.usbzh.com/article/detail-1187.html其实最开始搞的就是虚拟的UVC摄像头,没想到今天才开始展示。这次展示的是自己虚拟4个1920X1080x30的NV12数据格式的摄像头,摄像头的编号自己也就随意一些,分别为UsbzhVC......
USB HUB集线器芯片选型
型号TT模式过流检测工作温度封装 CH334GSTT--40~85℃SOP16 CH334RMTT--40~85℃QSOP16 CH334U/FMTTGANG模式-40~85℃QSOP28/QFN24_4x4 CH334S/Q......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!