news 2026/2/9 10:34:14

34、在C中与VxD进行汇编编程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
34、在C中与VxD进行汇编编程

在C中与VxD进行汇编编程

1. 添加“Thunk”以支持来自VMM/VxD的回调

许多VMM和VxD服务要求调用的VxD注册一个回调函数,之后VMM/VxD会调用这个回调函数,以通知调用的VxD发生了某些有趣的事情。例如:
- 一个VxD可能会调用VPICD_Virtualize_IRQ来注册一个硬件中断处理程序,当硬件中断发生时,VPICD会调用已注册的处理程序。
- 一个VxD可能会调用VMM服务Install_IO_Handler来注册一个端口陷阱处理程序,当Ring 3应用程序访问特定的I/O端口时,VMM会调用这个处理程序。

在大多数情况下,提供给回调函数的参数是通过寄存器传递的,而不是通过栈。不过,配置管理器VxD是个明显的例外,它使用栈来向回调函数传递参数。因此,注册的回调函数通常位于汇编语言模块中,这样回调函数就可以访问寄存器参数。

示例VxD遵循这样的约定:所有注册的回调函数都位于VxD的汇编模块(包含DDB和设备控制过程的那个模块)中,但回调函数在调用VxD的C模块中的函数进行实际处理之前,只进行最少的处理。在示例VxD中,汇编回调函数的名称总是以“Thunk”结尾,而它调用的C函数的名称基名相同,但以“Handler”结尾。例如,PORTTRAP示例中,VxD的汇编语言模块中有函数PortTrapThunk,它会调用位于VxD的C模块中的PortTrapHandler

每个需要回调的VMM/VxD服务使用不同的寄存器集合来向回调函数传递参数。因此,在使用回调时,必须参考服务文档,了

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

ArcGIS大师之路500技---037普通克里金VS泛克里金

文章目录前言一、两种克里金的本质区别(一句话说清)二、普通克里金的5种半变异函数详解2.1 Spherical(球面模型)★★★★★2.2 Exponential(指数模型)★★★★2.3 Gaussian(高斯模型&#xff09…

作者头像 李华
网站建设 2026/2/7 17:53:30

QQ音乐API终极指南:快速搭建专属音乐数据服务

QQ音乐API终极指南:快速搭建专属音乐数据服务 【免费下载链接】QQMusicApi 基于 Express Axios 的 QQ音乐接口 nodejs 版 项目地址: https://gitcode.com/gh_mirrors/qqm/QQMusicApi 在当今数字音乐时代,获取可靠的音乐数据接口成为众多开发者的…

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

Auto-install 终极指南:智能依赖管理全解析

Auto-install 终极指南:智能依赖管理全解析 【免费下载链接】auto-install Install dependencies as you code ⚡️ 项目地址: https://gitcode.com/gh_mirrors/au/auto-install 在当今快节奏的开发环境中,手动管理项目依赖已成为效率瓶颈。Auto-…

作者头像 李华
网站建设 2026/2/6 20:58:51

iOS上架被卡在 4.3条款 怎么办?分析应用被判定为相似应用的常见原因

第一次遇到 4.3 被拒时,我并没有太意外。 项目是典型的工具型应用,功能明确、逻辑简单,但审核意见里那句“与 App Store 上已有应用过于相似”,还是让人停下来重新审视整个上架过程。 后来几次 4.3 相关的项目让我逐渐意识到&…

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

Langchain-Chatchat协同编辑设想:多人同时维护知识库的可能性

Langchain-Chatchat协同编辑设想:多人同时维护知识库的可能性 在企业级AI应用逐渐从“演示系统”走向“生产系统”的今天,一个现实问题日益凸显:如何让团队中的多个成员,像协作编辑一份Word文档一样,共同维护一个本地部…

作者头像 李华
网站建设 2026/2/6 22:29:08

终极指南:用Docassemble快速搭建智能文档生成系统

终极指南:用Docassemble快速搭建智能文档生成系统 【免费下载链接】docassemble A free, open-source expert system for guided interviews and document assembly, based on Python, YAML, and Markdown. 项目地址: https://gitcode.com/gh_mirrors/do/docassem…

作者头像 李华