广西回收西门子公司
主机就会获取配置描述符。配置描述符总共为9字节。主机在获取到配置描述符后,根据里面的配置集合总长度,再获取配置集合。配置集合包括配置描述符,接口描述符,端点描符等等。如果有字符串描述符的话,还要获取字符串描述符。另外HID设备还有HID描述符等。主机通过解析描述符后对设备有了的了解,会选择一个合适的驱动给设备。然后telltheworld(announce_device)说明设备已经找到了,调用设备模型提供的接口device_add将设备添加到usb总线的设备列表里,然后usb总线会遍历驱动列表里的每个驱动,调用自己的match(usb_device_match)函数看它们和你的设备或接口是否匹配,匹配的话调用device_bind_driver函数,现在就将控制权交到设备驱动了。
广西回收西门子公司
单个请求可以是:向磁盘读出写入数据的请求;设备模式相关的指令:对可记录介质的写模式的设定等。引出这个结构体的目的是为了重点说明该结构体里面有一个重要的变量:该结构体是linux内核中通用块层的一个核心数据结构,它描述了块设备的I/O操作。它联系了内存缓冲区与块设备。在前面的块设备那一节中,后面讲的关于block_device_operations和请求对列已经输入驱动的范畴,在这里主要谈一下关于驱动的注册和注销以及驱动结构体。
广西回收西门子公司
实力雄厚:货量大的顾客我们成功洽谈后可选择上门面对面交易,保证价格满意,让您卖的放心,诚信至上,竭诚为您服务!经过双方洽谈, 终确认合理方案,签订回收交易合同,支付费用等一系列流程
USB数输都以URB(USBRequestBlock)请求、URB生成、URB递交、URB释放为主线。当加载控制器驱动之后,注册根据集线器,hub和hcd驱动成为一个整体。接着,主机通过控制传输获取设备的控制描述符等信息,接着详述整个控制传输的流程。依据是否连接到根集线器来决定调用urb_enqueue或rh_urb_enqueue函数。USB从设备通过集线器或根集线器连接到USB主机上。比如:主机通过根集线器与外界进行数据交互,根集线器通过探测数据线状态的变化来通知USB主机是否有USB外围设备接入。
完成StartI/O例程,ISR和DPC例程。现在可以使用真实的数据和硬件进行测试。驱动开发支持的函数种类分类支持函数名Executive存储器分配,互锁队列区域,监控列表,系统工作者线程ExXxx()HAL设备寄存器,总线访问HalXxx()I/OManager普通驱动程序支持IoXxx()KernelDPC,同步KeXxx()MemoryManager虚拟存储器到物理存储器的映射,存储器分配MmXxx()ObjectManager句柄管理ObXxx()ProcessManager系统线程管理PsXxx()Runtimelibrary字符串操作,大整数运算,寄存器访问,性函数,时间和日期函数,队列和列表支持RtlXxx()IoDeleteDevice从系统中删除设备对象UnloadorRemoveDeviceSecurityMonitor检查,描述符函数SeXxx()Miscellaneous内部系统服务ZwXxx()驱动程序对象和设备对象驱动对象代表了内核加载的驱动镜像,DriverEntry或AddDevice例程调用IoCreateDevice函数来创建设备对象时,驱动对象将作为该函数的一个输入参数。