用户模式驱动程序框架

✍ dations ◷ 2025-12-05 20:48:58 #驱动程式,微软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)。

相关

  • eMedicineeMedicine是一个建立于1996年的线上临床医学知识库,创建者为两名医生,分别是Scott Plantz与Richard Lavely。这家公司于2006年卖给了WebMD。
  • 胸膜胸膜(pulmonary pleurae)为肺部外层一对反折的浆膜,包围肺脏及胸腔。脏层胸膜(visceral pleura)为肺部外层的细致浆膜,脏层胸膜沿着肺实质的形状绵密包覆,且也会进入到肺叶(英语:lobe
  • 彼得·劳伦斯彼得·安东尼·劳伦斯(英语:Peter Anthony Lawrence,1941年6月23日-)是英国发育生物学家,现任剑桥大学动物学系和分子生物学实验室研究员。劳伦斯早年在西约克郡韦瑟比的温宁顿学
  • 司马迁司马迁(前145年-约前86年),字子长,龙门(今陕西韩城)人,是西汉时期著名的史学家和文学家。司马迁所撰写的《史记》被公认为是中国史书的典范,首创的纪传体撰史方法为后来历代正史所传
  • 2003年 大邱第二十二届夏季世界大学生运动会于2003年8月21日至2003年8月31日在韩国的大邱举行。这是韩国首次主办夏季世界大学生运动会,韩国也成为第三个获得夏季大学生运动会主办权的亚
  • 小艾伯特实验小艾伯特实验是一个显示婴儿经典条件反射的实验。这项研究也是一个刺激泛化的例子。它是在1920年由约翰·布罗德斯·华生和他的助手罗莎莉·雷纳在约翰霍普金斯大学进行的。
  • 当今大马当今大马(马来语:Malaysiakini),是马来西亚的一个网上新闻媒体,由颜重庆先生创于1999年11月20日。目前拥有中文、英文、马来文及淡米尔文4个语言供选择。当今大马同时也是制作和
  • 卡洛斯三世 (西班牙)卡洛斯三世(西班牙语:Carlos III,1716年1月20日—1788年12月14日)波旁王朝的西班牙国王(1759年—1788年在位),即位前封号为帕尔马公爵(称卡洛一世,1731年—1735年)。他也是那不勒斯国
  • 长叶瓦莲长叶瓦莲(学名:),为景天科瓦莲属下的一个植物种。
  • 大石泰彦大石泰彦(1922年7月21日-2014年1月16日),日本经济学家。日本会议代表委员。毕业于东京帝国大学经济学部,后担任教授、学部部长。1983年,担任立正大学经济学部教授、部长。1989年,任