用户模式驱动程序框架

✍ dations ◷ 2025-06-08 18:56:39 #驱动程式,微软API

用户模式驱动程序框架(英语:User-Mode Driver Framework,简称UMDF)是微软公司提出的窗口驱动程序基础(Windows Driver Foundation)的一部分,其运行于用户模式(user mode),仅能访问用户地址空间。它同时是核心模式驱动程序框架(Kernel-Mode Driver Framework,KMDF)的子集,因此UMDF所提供的函数支持少于KMDF,两者使用相同的状态机器、使用相同的I/O模型。

UMDF提供即插即用(PNP)、电源管理(Power Manager)、异步输出输入等功能,可设置I/O队列,但它的限制在于不处理中断(Interrupt)、不运行直接存储器访问(DMA),且不能使用核心模式资源如:未标签页集区(NonPaged Pool),也不完全支持同步化领域(Synchronization scope),在技术上UMDF使用COM(Component Object Model)的动态链接库(DLL)为基底技术。

UMDF驱动程序是一个基于COM框架的动态链接档(DLL),但UMDF并不使用COM的动态时期运行函数( library),单仅是借用了COM的样式。

UMDF 调用 DllGetClassObject API获取一个指针(pointer),这个指针指向一个IClassFactory的接口,并且激活 CreateInstance 这个属于IClassFactory 接口的函数来产生一个驱动程序的存储器实体(instance)。DLL 照例提供一些函数可以让COM 使用基于IWDFDriver的对象:

UMDF 驱动程序是一个动态链接库,运行的时候如同一个行程内(in-process)的COM服务器,其代码中包括了DllMain,这是著名的DLL档的进入点(entry point)。

相关

  • 圣海伦火山圣海伦火山(英语:Mount St. Helens)是一座活火山,位于美国太平洋西北区华盛顿州的斯卡梅尼亚县,西雅图市以南154公里,波特兰市东北85公里处,是喀斯喀特山脉的一部分。山的名称来自
  • 郯城大地震郯城大地震发生于中国清康熙七年农历六月十七戌时(1668年7月25日20时左右)。震中位于山东省东南部今郯城、临沂、临沭三县交界处。此次地震最大烈度达XII度,为中国东部历史上地
  • 阿提卡希腊语阿提卡希腊语(英语:Attic Greek),又称雅典希腊语,是一种古希腊语方言,在以雅典为中心的阿提卡地区使用。在诸古希腊语方言中,它最类似于后来的希腊语,并且是“古希腊语”课程所研习
  • 2,3,4,5,6,7,8,9-八羟基壬醛2,3,4,5,6,7,8,9-八羟基壬醛(IUPAC名:2,3,4,5,6,7,8,9-octahydroxynonanal)是一类壬醛糖。共有128种镜像异构物,例如L-核-D-甘露壬糖等。2,3,4,5,6,7,8,9-octahydroxynonanal的
  • 博克斯埃尔德县博克斯埃尔德县(英语:Box Elder County)是美国犹他州西北部的一个县,北邻爱达荷州,西邻内华达州,面积6,708平方公里。根据2010年人口普查,博克斯埃尔德县共有人口49,975人。博克斯
  • AP计算机科学AP 计算机科学 (别称 AP编程, APCS, AP Java 或者是 CSAP) 是由美国大学理事会主持的课程和考试,以便提供给高中学生获得大学水平的计算机科学课程的大学学分。AP计算机科学A
  • 纠错内存修正错误存储器(英语:Error-Correcting Code memory,缩写:ECC memory或ECC)指能够实现错误检查和纠正错误技术的内存。在ECC技术出现之前,内存中应用最多的另外一种错误检查技术,是
  • 于谦顾见龙绘于谦像于谦(1398年5月13日-1457年2月16日),字廷益,号节庵,谥忠肃,明朝重臣,浙江钱塘县(今浙江省杭州市)人。官至兵部尚书。于谦由永乐辛丑进士出身,因参与平定汉王朱高煦谋反有
  • 馬克斯·克莱顿馬克斯·詹姆斯·克莱顿(英语:Max James Clayton,1994年8月9日-)是一名英格兰足球运动员,司职前锋,出身克鲁青训系统,现时效力英甲俱乐部布莱克浦,他亦曾代表英格兰参赛多个不同的年
  • 伊达·比塔莱伊达·比塔莱(西班牙语:Ida Vitale,1923年11月2日-)是乌拉圭蒙得维的亚出身的女性诗人,2018年塞万提斯奖得主。1923年生于乌拉圭蒙得维的亚,是该国作家团体运动“四五”一代的重要