news 2026/2/26 18:10:40

20、VxD与应用程序通信技术解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
20、VxD与应用程序通信技术解析

VxD与应用程序通信技术解析

1. 通信概述

在某些情况下,应用程序调用VxD并立即获取所需信息或服务就足够了。但有时,应用程序需要在特定事件发生时由VxD异步通知。Windows 3.x和Windows 95都支持VxD到应用程序的通信机制,但与上一章讨论的应用程序到VxD的方法相比,此接口更为复杂。

VxD与应用程序的通信方式可分为:使用PostMessage的VxD、使用“appy - time”的VxD以及使用Win32特定技术的VxD。Windows 3.x和Windows 95下的VxD都可以使用PostMessage与16位和32位的Windows应用程序通信。Windows 95的VxD还有其他选择,如使用“appy - time”服务与Win16应用程序通信,以及使用两种不同的技术与Win32应用程序通信。

2. VxD调用Win16应用程序的难题

假设Win16应用程序使用INT 2Fh API将应用程序内回调函数的地址传递给VxD。VxD在使用应用程序的回调之前必须克服几个障碍。VxD在任何VM上下文之外执行,而Ring 3回调必须在注册回调的SystemVM的正确VM上下文中执行。因此,VxD必须首先安排一个VM事件,并在System VM的上下文中被回调,即当该VM处于当前状态时。从这个事件处理程序内部,VxD可以使用VMM嵌套执行服务在System VM中执行应用程序回调。

如果VxD仅使用这种简单机制,应用程序回调代码的功能会非常有限。特别是,回调允许使用的唯一Windows API函数是PostMessage。当通过嵌套执行从VxD调用时,应用程序回调函数的执行方式与ISR非常相似,并且受到相同类型的约束

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/24 3:16:36

22、Windows VxD 与应用程序通信技术解析

Windows VxD 与应用程序通信技术解析 1. 引言 在 Windows 系统开发中,VxD(虚拟设备驱动程序)与应用程序之间的通信至关重要。VxD 作为系统底层的驱动程序,需要与上层的应用程序进行交互,以实现各种功能。本文将详细介绍 VxD 与应用程序通信的多种技术,包括不同操作系统…

作者头像 李华
网站建设 2026/2/24 21:31:08

24、16位驱动DLL开发与硬件连接全解析

16位驱动DLL开发与硬件连接全解析 16位驱动DLL简介 在开发Windows DLL时,链接器的使用与DOS应用有所不同。DOS应用的链接命令行通常不指定库,因为C编译器会在 .OBJ 文件中嵌入信息,告知链接器使用哪个库(小、中、大模型)。而Windows DLL需要特殊版本的C库,即 ?dllce…

作者头像 李华
网站建设 2026/2/26 6:46:50

从“读不懂”到“读透”:科研小白必学的文献阅读三步法

刚接触科研的你,是不是也有过这样的困扰?面对动辄几十页的英文文献,翻了几页就头晕脑胀,要么抓不住核心观点,要么读完就忘,花了大量时间却收效甚微?其实,文献阅读从来不是“逐字逐句…

作者头像 李华
网站建设 2026/2/22 19:27:16

38、电影制作全攻略:从素材导入到特效添加

电影制作全攻略:从素材导入到特效添加 在当今数字化时代,制作属于自己的电影不再是遥不可及的梦想。借助强大的视频编辑工具,我们可以轻松地将各种素材整合在一起,创作出令人惊艳的作品。本文将详细介绍如何使用视频编辑软件进行电影制作,涵盖从素材导入到特效添加的各个…

作者头像 李华
网站建设 2026/2/22 22:48:43

AI动画制作工具选择指南:从新手到专业的决策路径

AI动画制作工具选择指南:从新手到专业的决策路径 【免费下载链接】awesome-ai-painting AI绘画资料合集(包含国内外可使用平台、使用教程、参数教程、部署教程、业界新闻等等) stable diffusion tutorial、disco diffusion tutorial、 AI Pla…

作者头像 李华
网站建设 2026/2/25 21:19:53

理解Linux和Windows的区别

Linux 和 Windows 是目前主流的两类操作系统,二者的核心区别可以从定位与起源、权限与安全、定制性、使用场景、生态这几个核心维度来区分: 定位与起源 Linux:是一款基于 Unix 的开源操作系统,最初由林纳斯・托瓦兹在 1991 年开发…

作者头像 李华