news 2026/4/23 14:17:16

31、32位到16位调用的Thunk层及驱动DLL定时器使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
31、32位到16位调用的Thunk层及驱动DLL定时器使用

32位到16位调用的Thunk层及驱动DLL定时器使用

32位到16位调用的Thunk层

在进行32位到16位的调用时,参数转换完成后,从32位到16位的切换通过如下代码实现:

call dword ptr [pfnQT_Thunk_X2to16]

这个通过函数指针表的调用最终会调用一个未公开的KERNEL32函数QT_ThunkQT_Thunk会接收真实16位DLL中DLL16Foo函数的16:16地址,它负责从32位栈切换到16位栈,然后跳转到真实16位DLL中DLL16Foo函数的16:16地址。

函数指针表的初始化过程较为复杂。简单来说,32位DLL必须在其DllMain中调用一个特殊的初始化函数ThunkConnect32。该函数由Thunk编译器生成,它通过用16位DLL每个导出函数的16:16地址初始化表,将32位DLL与16位DLL“连接”起来。这些地址直到运行时16位DLL加载后才可知,ThunkConnect32会使用另一个未公开的KERNEL32函数Connect32来获取这些16:16地址。

创建Thunk层的步骤

创建Thunk DLL需要遵循以下步骤:
1. 修改16位DLL的头文件,创建包含每个导出函数参数输入、输出和输入输

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

Langchain-Chatchat关系图谱构建:揭示知识点之间的关联网络

Langchain-Chatchat关系图谱构建:揭示知识点之间的关联网络 在企业知识管理日益复杂的今天,一个常见却棘手的问题是:员工明明拥有数百份制度文档、操作手册和项目记录,但在面对“跨部门报销流程”或“绩效考核与晋升机制的联动规…

作者头像 李华
网站建设 2026/4/23 14:09:23

36、玩转媒体收藏:Windows Media Player 使用全攻略

玩转媒体收藏:Windows Media Player 使用全攻略 1. 管理媒体收藏 当你想要管理媒体收藏时,可点击媒体播放器功能任务栏中的“媒体库”按钮。此时屏幕会分成两个窗格,左侧是分类,右侧是单个歌曲。右侧窗格中显示的歌曲取决于你点击的分类。例如,点击“所有音乐”,右侧窗…

作者头像 李华
网站建设 2026/4/23 14:09:00

37、用Windows Movie Maker 2制作家庭电影

用Windows Movie Maker 2制作家庭电影 1. Windows Movie Maker简介 每一部电影或电视剧都是由一系列场景组织成的故事。Windows Movie Maker 是一款能让你以类似方式创建专业级视频的程序,你可以将家庭电影中的精彩场景,甚至从网络下载的视频片段组合起来。你制作的电影可以…

作者头像 李华
网站建设 2026/4/23 15:30:40

Gatus配置终极指南:从零开始构建企业级监控系统

Gatus配置终极指南:从零开始构建企业级监控系统 【免费下载链接】gatus ⛑ Automated developer-oriented status page 项目地址: https://gitcode.com/GitHub_Trending/ga/gatus 还在为服务频繁宕机而头疼?想找一个既简单又强大的监控工具&#…

作者头像 李华
网站建设 2026/4/23 17:10:45

Langchain-Chatchat方言识别尝试:粤语、四川话能否听懂?

Langchain-Chatchat方言识别尝试:粤语、四川话能否听懂? 在企业智能问答系统日益普及的今天,一个看似简单却极具现实挑战的问题浮出水面:当员工用一口地道的四川话问“报销流程咋个搞?”或用粤语嘀咕“我哋份合同有冇…

作者头像 李华
网站建设 2026/4/23 17:11:37

豆包手机正在重新定义规则

字节跳动的“豆包手机”低调上线。 首批仅几万台,官方定性为“技术预览版”,看起来像是一次小规模的硬件尝试。然而,剥开它“中兴代工、3499元售价”的普通外壳,你会发现这其实是一枚投向移动互联网深水区的核弹。 它不仅仅是一…

作者头像 李华