本站的1位用户
加入于2021-05-27
Windows驱动开发,网站开发
好好学习,天天向上。
    学习学习,对USB的学习其实带着问题有目的的解决问题,是最棒的。昨日本站USB中文网技术交流群一位同学拿了一个游戏手柄,没想到在本群中关于它的分析出展开了…该游戏手柄接入PC机后,在Windows下的设备管理器中的设备树如下:usbtreeview给出的设备信息如下:Device Descrip......
    阅读数:11点赞数:02021-08-02 11:23:41
    今天本站USB中文网站内技术交流群有人提了一个问题,说是:电脑关机重开有时候后会偶尔不出图,抓包就是传一帧就不传了通过与他的沟通,基本确定信息如下:自行开发的UVC摄像头采用的是USB3.0传输规范USB3.0端的芯片为赛普拉斯的CYUSB3014设备的主控为FPGAUVC图像数据采用的是BU......
    阅读数:67点赞数:02021-07-22 16:53:27
    激动的心情,无溢言表。。虽然只是一个很简单的东西。。但相于折腾了这么久,还是很开心的了。最近有个需求,功能是这样的:有一个USB复合设备,连接到windows系统中它在windows下的设备树如下:USB Composite Device(usbccgp.sys)UVC CameraUAC ......
    阅读数:22点赞数:12021-07-20 16:31:43
    libusb是一个c语言的usb库,这个库使用们可以在不使用特定驱动的性情况下对USB设备进行相关的操作,这些操作包括:对USB设备支持的传输类型如控制传输、批量传输,中断传输或等时/同步传输进行数据通讯操作。。支持数据接口的同步和异步操作。线程安全。支持热插拔(Hotplug)功能(windo......
    阅读数:13点赞数:02021-07-15 10:53:41
    通常做USB设备的开发,我们做的都是单一的功能设备。这种单一的功能设备只实现某种特定的功能,如只实现一个HID鼠标或键盘,只实现一个USB存储功能,或再复杂一点只实现一个UVC音频麦克风和扬声器功能或一个UVC摄像头功能。但我们在一般的市场上看到的设备通常不只实现一种功能,如UVC摄像头功能还提供......
    阅读数:35点赞数:02021-07-12 12:14:25
    昨天要测试一个软件不停的整机的功能:在整机软件中需要不停地点击某个软件的按钮,启动会议功能,然后隔一段时间后,需要再次呼出关闭按钮,并点击将该按钮停止会议,如此往复的操作。当然这些操作是需要人工操作点击软件界面的某些按钮实现的。本以为是一个很简单的东西,没想到还是弄出了花样。初始版本 - 脚本方......
    阅读数:303点赞数:12021-07-09 15:18:49
    今天在本站USB中文网 http://www.usbzh.com 的技术交流群中有位同学提问:各位老铁,我们自己的soc板子用的usb一个驱动,那么usb设备名称,厂商和产品ID就一样了,这个是没有方法来区别下比如一个PC同时插入我们的3块USB对于这个问题,就是典型的多个相同的板板接入电脑......
    阅读数:28点赞数:02021-07-08 00:44:10
    自己搞了一个USB 触摸屏的驱动,通过对系统的USB触摸屏设备进行更改,这样可以在自己的驱动中过滤来自触摸屏的数据。在不加自定义驱动的情况下,设备管理器树关系如下:USB输入设备USB触摸屏设备而加上自己的设备驱动后,设备管理器树关系如下:自己的驱动程序USB输入设备USB触摸屏设备......
    阅读数:21点赞数:02021-07-06 16:25:41
    USB设备现在比较多,像UVC摄像头,UAC音频或TOUCH设备,这些设备在设备管理器中无不都会带一个自定义的HID设备。这个自定义的HID主要的功能一般是通过应用层与固件进行数据通讯,比如对固件参数的配置,甚至固件的升级。在Windows下,两2套与HID设备的通讯的接口,一组是WriteFil......
    阅读数:9点赞数:02021-07-01 16:55:46
    在USB FDO总线驱动中,创建了子设备PDO后,调用通知PNP管理器设备树发生了变化。这时系统会重新获取子设备关系树,然后对子设备进行信息收集,并启用。具体的过程如下:->FDO:IRP_MN_QUERY_DEVICE_RELATIONS PDO:IRP_MN_QUERY_ID......
    阅读数:15点赞数:02021-06-30 17:15:19
    在USB驱动总线开发中,IRP_MN_QUERY_BUS_INFORMATION和IRP_MN_QUERY_INTERFACE还挺重要的。对于HID设备,这两个IRP其实只要支持IRP_MN_QUERY_CAPABILITIES就行,而且这个CAPABILITIES不要额外的信息。但对于像UVC,......
    阅读数:11点赞数:02021-06-30 15:56:38
    URB的同步调用一般使用:Windows下USB驱动同步URB转IRP请求函数代码 http://www.usbzh.com/fun/detail-31.html但是,在某些特定的情况下,有时会因为下底设备并没有完成而挂死。这里提供一种超时取消IRP的方法,同时考虑到了线和切换的情况。这里的实现机制......
    DirectShow默认是不支持NV12,H264等非原生态数据格式的,为了支持这些非原生态的格式,微软的DirectShow使用过滤器来实现。具体原理就是在对收到的不支持的数据格式进行转码,这样就可以渲染了。 说明:本段代码来自USB中文网技术交流群,感谢临江仙的分享! class CForm......
    使用VC编程,打开摄像头并播放 PlayCap.cpp #define _WIN32_WINNT 0x0500 #include #include #include #include <......
    PCHAR PnPMinorFunctionString( UCHAR MinorFunction ) { static char str[256]; switch (MinorFunction) { case IRP_MN_START_DEVICE: ......
    URB有同步请求,也有异步请求。这里微软官方提供了一个异步请求URB的代码示例 // The SubmitUrbASync routine submits an URB asynchronously. // // Parameters: // // Parameters: // Devic......
    Windows的设备在驱动中大部分都会IoSetRegisterInterface,这其中一个重要的参数是GUID,这样系统会根据这个GUID给设备创建一个symbolicname,这个名字在应用层可以通过CreateFile打开。这里分享一个在应用层通过SetuApi枚举该类型GUID下的所有设备......
    UVC 视频流接口控制请求 http://www.usbzh.com/article/detail-45.html 需要使用一些数据字段进行通讯,如UVC1.0是26个字节的长度,UVC1.1是34字节的长度,UVC1.5是48字节的长度。这里我们定义一个通用长48字节结构体,对应VS_PROBE_......
    USB设备的一个种要的概念就是各种描述符,如设备描述符,配置描述符,字符串描述符等等。在设备驱动驱动开发中,通过读取这些描述符可以知道该USB设备的相关信息。这里我们对在Windows驱动开发过程的获取USB设备的描述符进行代码封装成函数GetDescriptor。 NTSTATUS GetDesc......
    URB和IRP类似,只不过一个应用于通用的Windows驱动,一个专职于USB。USB的URB的负载是IRP,其通过负载到IRP时,然后使用通用的Windows IRP请求发向下层目标USB设备。USB与IRP的关联是通过IRP的IO_STACK_LOCATION的 IoStack->Para......
    Windows驱动开发过程中,关于设备DEVICE_OBJECT有一堆的属信息,如硬件ID,兼容ID之类的,这些属性信息大部分在应用层是可以根据Setup系列函数获取到的。但在驱动层怎么获取PNP上报的物理设备PDO的这些属性信息呢? 常见的属性信息有: wdm.h:33601 typedef en......
    USBIP驱动层中有一段代码,是通过USB的版本来判断当前USB的速率。判断的标准是以USB设备描述符bcdUSB字段来判断的。 static const struct speed_string speed_strings[] = { { USB_SPEED_UNKNOWN, u......
    Windows驱动硬件ID生成的测试代码 Index = swprintf(Buffer, L USB\Class_%02x&SubClass_%02x&Prot_%02x , DeviceDescriptor->bDeviceClass, DeviceD......