还是wince usb function驱动的问题
[复制链接]
实际还是老问题,这次只不过是说的详细些,前面问了好多关于usb function 驱动的问题 ,说白了都差不多,这次问的更具体一些了,感谢韦伯,guopeixin,FLANDY......等高手的指点,小弟在你们那里学到了很多。由于都是同样一个问题,而且还没有解决,所以一直没有结贴,请各位见谅。言归正传:
我们知道host端(pc)是靠接受wince系统发过来的描述符来识别设备并加载相应的驱动的,wince系统的ppc可以在host(pc)端在randis,storge,serial几种形式之间切换,而控制切换的就是在oak/driver/USBFN/CONTROLLER文件夹中的代码来实现,在该文件夹中有两个子文件夹一个是MDD,另一个是net2280.上次韦伯指点我说关键的IOCONTROL是IOCTL_UFN_CHANGE_CURRENT_CLIENT,我也找到了相关的代码。在MDD文件夹下的ufnmdd.cpp中,但是具体的程序还是看的不是很懂。在MDD文件夹下有一个emum.CPP文件,我从字面的意思感觉好像和usb的枚举有关。而主机是靠先枚举设备,接受ce发过来的设备描述符,来识别设备并加载驱动的。
我只是想掌握具体的controller是怎样控制程序让wince系统(device)给host(PC)传输不同的描述符信息的,从而实现在pc端实现不同设备的显示之间的切换的。