User-Mode Driver Framework(用户模式驱动程序架构,简称UMDF),是
美国微软公司所提出视窗驱动程序基础(
Windows Driver Foundation)的一部分,运行于用户模式(user mode),仅能访问用户地址空间,是核心模式驱动程序框架(Kernel-Mode Driver Framework,
KMDF)的子集合(subset),因此UMDF所提供的函数支持少于KMDF,两者使用相同的状态机器、使用相同的 I/O 模型。
User-Mode Driver Framework(用户模式驱动程序架构,简称UMDF),是
美国微软公司所提出视窗驱动程序基础(
Windows Driver Foundation)的一部分,运行于用户模式(user mode),仅能访问用户地址空间,是核心模式驱动程序框架(Kernel-Mode Driver Framework,
KMDF)的子集合(subset),因此UMDF所提供的函数支持少于KMDF,两者使用相同的状态机器、使用相同的 I/O 模型。
UMDF提供即插即用(PNP)、电源管理(Power Manager)、异步输出输入等功能,可设置 I/O 队列,但他的限制在于不处理中断(Interrupt)、不运行 DMA(
直接存储器访问,Direct Memory Access),且不能使用核心模式资源如:未标签页集区(NonPaged Pool),也不完全支持同步化领域(Synchronization scope),在技术上UMDF使用COM(Component Object Model)的动态链接程序库(DLL)为基底技术。
UMDF驱动程序是一个基于COM架构的动态链接档(DLL),但UMDF并不使用COM的动态时期运行函数(runtimelibrary),单仅是借用了COM的样式。
UMDF 调用 DllGetClassObject API获取一个指针(pointer),这个指针指向一个IClassFactory的接口,并且激活 CreateInstance 这个属于IClassFactory 接口的函数来产生一个驱动程序的存储器实体(instance)。DLL 照例提供一些函数可以让COM 使用IWDFDriver-based的对象:
UMDF 驱动程序是一个动态链接库(Dynamic Link Library),运行的时候如同一个进程内(in-process)的 COM server,其代码中包括了DllMain,这是著名的DLL档的进入点(entry point)。