1、按照umdf驱动的框架结构,一定是要有creatfile之类的上层api的应用程序调用,但是为什么我看不到?
答:这个上层的api驱动程序是有的,只是我们看不到罢了,这个应用程序是由微软自己写的,可能是以服务或者其他的形式存在,但必须相信的是这个程序一定会有。并且这个程序还设定了多久来发送一次io请求。然后剩下的事情就基本上没有这个应用程序的事情了。对于屏幕的旋转的触发是另外一个graphic(显卡驱动)来完成的。(第一次理解)
修1:根据芯片的数据手册是这样的,当配置好芯片之后,会设定一个加速度的临界值,当gsonser的摆动幅度超过了这个数值之后,这个芯片会自动的触发一个中断发送的操作。
然后,这个中断是从底层发送过来的,然后交给程序中的一个report manage来进行管理。来控制是否是正常的中断,并且进行处理。如果是,则发送给队列进行处理。而不是第一次理解的从上层发送的io请求。
2、umdf那块驱动到底是干了哪些事情?(https://msdn.microsoft.com/zh-cn/library/ff545374(v=vs.85).aspx)
答:接受io请求的消息,完成一些相应的动作,然后发送一些事件或者消息来告知传感器类数据发生了变化,然后引发传感器的各种操作。而对于那些自己无法处理的io操作分发给传感器扩展类。然后由其他驱动或者系统自己去处理。这样看来我们写的umdf驱动部分基本上就是被包含在扩展类的内部在工作。
3、ClientManager文件的作用是什么?
答:文件主要是对io请求进行一些管理,比如有多少个调用,调用的频率是否合适等等,就是对客户进行一个管理。