首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

如何新增USB function client 驱动

2013-01-01 
怎么新增USB function client 驱动微软有三个usb client驱动:RNDIS, serial, and storage但是没有提到怎么

怎么新增USB function client 驱动
微软有三个usb client驱动:RNDIS, serial, and storage
但是没有提到怎么新增,另外应用层跟MDD层怎么调用?

目前我看了几天,觉得通过注册表应该可以增加DLL的,但是应用跟驱动之间的通信还是没有理解。

不知道有没有做过client相关的人员能提供一点信息
[解决办法]
看看这个帖子,或许有帮助http://blog.csdn.net/nanjianhui/article/details/4555595
[解决办法]
LZ定制os时,勾选上你所需usb client功能的组件,通过应用程序来切换ActiveSync、Mass storage模式。
通过打开usb驱动:
HANDLE m_ufnHandle  = CreateFile(L"UFN1:",FILE_WRITE_ATTRIBUTES
[解决办法]
GENERIC_READ
[解决办法]
GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
然后通过ICCTL:IOCTL_UFN_CHANGE_CURRENT_CLIENT,可实现切换.
[解决办法]
你要把usb模拟成一个什么新东西?function的上层有一个controller mdd,这里面有很多的iocontrol,你应该改看过usbserial和usbstorage的动态切换吧,算是应用层序吗 
[解决办法]
帮你瞄了下,是这样的
其实usbserial驱动是这样的,他就是一个串口驱动,可以参考public\common\makefile文件
serialusbfn:: com_mdd2 serpddcm ceddk ufnclientlib
            @set TARGETLIBS=$(OWNSTATICLIB) $(CEDDKLIB) $(SG_OUTPUT_OAKLIB)\com_mdd2.lib $(SG_OUTPUT_OAKLIB)\serpddcm.lib $(SG_OUTPUT_OAKLIB)\ufnclientlib.lib

很明显,他是作为一个串口驱动来开机加载的,这里有这么一个关键的函数在usbfndrv.cpp里面CreateSerialObject,这里会创建出USBSerialFn,USBSerSerialFn,这里就可以用他来操作ufn驱动

所以至于分层COM_MDD-->COM_PDD-->usbserial--->usbfuction驱动

至少我是这么理解的

热点排行