这是一个多功能的函数,可打开或创建文件或者I/O设备,并返回可访问的句柄:控制台,通信资源,目录(只读打开),磁盘驱动器,文件,邮槽,管道。
win10和win7的区别只在于发送数据函数:hidDevice.Write(arr, 0, arr.Length);
USB Serial support registered for generic [ 0.529231] usbcore: registered new interface driver usbhid [ 0.529232] usbhid: USB HID core driver [ 0.870736] usb 1-4: new low-speed USB device number
有时候报这种错 一切的一切都是DLL的库名引起的 一开始我一直用HID作为库名,怎样改都有错 后面改成USBHID 神奇的就可以了 初步怀疑是系统有了这个库名,但应该也不影响呀。
需要注意: wireshark 高版本默认支持 USB HID 协议,将不会显示 Leftover Capture Data 而是 HID Data,可以将原指令中的 usbcap.data 改为 usbhid.data 中用另一种方式用指令过滤(会比分开手动导出方便一点)(上面脚本中os调用的指令,windows命令行是可以直接执行的) tshark -r ez_usb.pcapng -T fields -e usbhid.data
5.2、鼠标驱动 在Linux kernel中,drivers\hid\usbhid\hiddev.c和drivers\hid\usbhid\usbmouse.c两个驱动文件均可以支持USB鼠标,具体使用哪个驱动 下面我们就以drivers\hid\usbhid\usbmouse.c这个驱动文件为例,分析USB鼠标的驱动代码流程。
events driver (C) Jiri Kosina [ 4.345615] usbcore: registered new interface driver usbhid [ 4.345617] usbhid: USB HID core driver [ 4.347085] sunxi-daudio daudio0: regulator
例子:/sys/module/usbhid(USB HID 设备驱动模块,支持鼠标、键盘) 举个直观的例子:找 USB 鼠标的信息,你可以通过两种路径: 按总线路径:/sys/bus/usb/devices 步骤 2:匹配驱动,绑定设备 USB 总线驱动遍历/sys/bus/usb/drivers下的所有驱动,找 “支持 046d:c077” 的驱动 —— 找到usbhid(USB HID 设备驱动,支持鼠标 、键盘); usbhid驱动和鼠标的kobject绑定,为鼠标注册 “输入事件处理函数”(比如处理移动、点击); 驱动更新kobject的属性,比如添加 “分辨率”“采样率” 等可配置属性。
lsmod命令 用户空间可以通过lsmod命令查看模块的使用计数: $ lsmod | grep usbcore usbcore 311296 14 usb_storage,usbhid 使用计数的典型应用场景 3.1 驱动模块的依赖管理 USB 核心驱动(usbcore)被众多 USB 设备驱动依赖: 当插入 U 盘时,usb-storage驱动加载,usbcore计数 + 1 再插入 USB 鼠标,usbhid
Linux 内核源码:include\linux\usb.h Linux 内核源码:drivers\hid\usbhid\usbmouse.c 1.
vboxpci(O) vboxnetadp(O) vboxnetflt(O) vboxdrv(O) ipv6 fuse joydev hid_thingm hid_generic uas usb_storage usbhid nls_iso8859_1 nls_cp437 vfat fat joydev sg shpchp sbsa_gwdt ipmi_ssif binfmt_misc ip_tables hid_generic usbhid
(pio) ledtrig-cpu: registered to indicate activity on CPUs usbcore: registered new interface driver usbhid usbhid: USB HID core driver input: AT Raw Set 2 keyboard as /devices/platform/smb@04000000/smb@04000000
root_hub, Driver=uhci_hcd/2p, 12M |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid
0.0 0.0 0:00.00 kpsmoused 54 root 20 0 0 0 0 S 0.0 0.0 0:00.00 usbhid_resumer 0.0 0.0 0:00.00 kpsmoused 64 root 20 0 0 0 0 S 0.0 0.0 0:00.00 usbhid_resumer
mmc: initialized, max. request size: 16384 KB [ 1.202863] usbcore: registered new interface driver usbhid [ 1.208440] usbhid: USB HID core driver [ 1.214579] sun4i-codec 1c22c00.codec: ASoC: codec-analog
mmci: mmc0: PL181 manf 41 rev0 at 0x10005000 irq 25,26 (pio) usbcore: registered new interface driver usbhid usbhid: USB HID core driver ashmem: initialized aaci-pl041 10004000.aaci: ARM AC'97 Interface PL041
using DMA ledtrig-cpu: registered to indicate activity on CPUs usbcore: registered new interface driver usbhid usbhid: USB HID core driver NET: Registered protocol family 10 sit: IPv6, IPv4 and MPLS over IPv4 tunneling
acpi_pad serio_raw shpchp mac_hid wmi parport_pc ppdev lp parport ip_tables x_tables autofs4 hid_generic usbhid
ledtrig-cpu: registered to indicate activity on CPUs [ 2.755179] usbcore: registered new interface driver usbhid [ 2.760568] usbhid: USB HID core driver [ 2.766205] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager
vmw_vmci i2c_piix4 rfcomm bnep bluetooth 6lowpan_iphc parport_pc ppdev mac_hid lp parport hid_generic usbhid