chapter 4.7: WDF的device和driver支持

来源:互联网 发布:淘宝满包邮怎么设置 编辑:程序博客网 时间:2024/05/23 13:50

UMDF支持的设备

UMDF支持protocal-based or serial bus-based devices(USB device),32或64皆可:

    1.Portable devices

    2.USB devices,除了isochronous deivice

    3.Auxiliary display,video devices

*主要是一些可以直接连接、网络连接、无线连接的设备,和software-only drivers

*不允许32位的UMDF/KMDF驱动安装在64位系统中(溢出和安全问题)


UMDF相对kernel driver的优势

1.环境简单,避免了由于IRQL、page fault和thread context产生的错误(独立地址空间)

2.系统稳定性:独立地址空间

3.安全风险降低:只有限制的权限(LocalService Account),防止denial-of-service攻击

*支持impersonation时,需要driver注册该功能,该功能会引起使用驱动的程序被代码注入

4.Windows API:可以调用除了支持UI的大部分API(小心调用外部程序和模块),WindowsAPI不支持asynchronous I/O model(调用耗时WindowsAPI导致驱动被长时间挂起)

*不支持UI原因:UMDF运行在session 0,和系统服务一起,所以不支持UI。若要支持UI,需要创建另一个模块

5.用户模式调试,且不用导致系统崩溃

6.C/C++编程,大多数情况用C++


UMDF限制

一定要使用内核驱动的情况:

    1.硬件的直接访问,处理中断

    2.Uninterrupted timing loops

    3.对内核数据结构,内核内存的访问

*UMDF不能作为内核中的一个client


KMDF支持的设备

例外:一些miniport model支持的设备:Storport drivers

?WIA


选择正确的framework

只有在必要时采用kernel mode driver,如:

    MP3播放器驱动使用了windows protable device model,所以可以使用UMDF

    network adapter由于处理中断,使用DMA,必须使用KMDF

USB驱动被两个framework都支持,应考虑使用的服务来选择framework

*framework不支持file system driver或file system filter driver!使用file system kit







原创粉丝点击