USBIP解读及源码分析
+ -

USBIP 虚拟根设备(VDEV_ROOT)FDO的初始化过程

2022-02-28 335 0
您好,该文仅对付费用户可见,请开通VIP会员
HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

IRP_MN_QUERY_CAPABILITIES和IRP_MN_QUERY_INTERFACE在USB总线驱动中的作用
在USB驱动总线开发中,IRP_MN_QUERY_BUS_INFORMATION和IRP_MN_QUERY_INTERFACE还挺重要的。对于HID设备,这两个IRP其实只要支持IRP_MN_QUERY_CAPABILITIES就行,而且这个CAPABILITIES不要额外的信息。但对于像UVC,......
USBIP 创建设备AddDevice
USBIP的AdDevice函数为vhci_add_device。DriverEntry(__in PDRIVER_OBJECT drvobj, __in PUNICODE_STRING RegistryPath){... drvobj->DriverExtension->......
USBIP 虚拟根设备(VDEV_ROOT)FDO的初始化过程
AddDeviceUSBIP使用devcon安装根设备驱动后,会创建其对应的PDO,这时系统会加载我们的驱动调用AddDevice函数创建PDO,进入进行堆栈。devcon.exe install vaudio.inf "USBIPWIN oot"我们在之前的创建设备Add......
USBIP 虚拟控制器设备(VDEV_CPDO)PDO的初始化过程
IRP_MN_QUERY_ID/BusQueryDeviceIDPAGEABLE NTSTATUSpnp_query_id(pvdev_t vdev, PIRP irp, PIO_STACK_LOCATION irpstack){ NTSTATUS status = STATUS_......
USBIP 虚拟控制器设备(VDEV_VHCI)FDO的初始化过程
虚拟ROOT总线FDO创建了虚拟USB控制器PDO之后,系统通过各种IRP_MJ_PNP收集完物理设备的信息之后,开始根据其硬件ID进行设备驱动批配,批配成功后,装载驱动并调用其AddDevice之后,开始FDO的创建过程。通过前面的可知,USBIP实现的根驱动,USB控制器、HUB和设备PDO的S......
USBIP 虚拟集线器FDO子设备的管理
IRP_MN_QUERY_DEVICE_RELATIONS这得从IRP_MN_QUERY_DEVICE_RELATIONS来谈起,好像有点看的不是很明白。先把上一节的代码复制过来,看一下:static PAGEABLE NTSTATUSget_bus_relations_vhub(pvhub_d......
USBIP 获取子设备IRP_MN_QUERY_DEVICE_RELATIONS
作为总线驱动程序,通过IRP_MN_QUERY_DEVICE_RELATIONS返回其子设备。 case IRP_MN_QUERY_DEVICE_RELATIONS: status = pnp_query_dev_relations(vdev, irp, irpstack);......
USBIP 获取设备功能IRP_MN_QUERY_CAPABILITIES
DEVICE_CAPABILITIES是由IRP_MN_QUERY_CAPABILITIES请求发起的,用于获取设备的功能属性。所以对于任何设备,这个属性的设置应由创建这个设备的驱动来进行数据填充。所以从这方面来理解,完成IRP_MN_QUERY_CAPABILITIES这个请求并填充DEVICE_......
USBIP 总线驱动上报子设备
USBIP该驱动包括了5种种设备的驱动,分别为:typedef enum { VDEV_ROOT, //虚拟根设备FDO VDEV_CPDO, //USB控制器PDO CONTROL PDO VDEV_VHCI, //虚拟USB控制器FDO VDEV_HPDO, ......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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