Windows 95系统编程:共享内存与DLL载入技巧

需积分: 50 23 下载量 94 浏览量 更新于2024-08-08 收藏 4.52MB PDF 举报
《Windows95系统程序设计大奥秘》是一本介绍Windows 95系统底层编程技术的书籍,由侯捷翻译并提供。作者通过详细解析Windows 95的内存管理机制,展示了操作系统如何处理共享内存、模块加载、进程和线程、动态链接,以及如何组织可执行文件和内存地址空间的划分。书中特别强调了将DLL(动态链接库)W32SPDLL.DLL正确加载到共享内存区域的过程,这是一个关键的技术挑战,因为Windows 95有特定的内存区域分配策略,以避免系统DLL和其他共享资源的冲突。 首先,作者提到将W32SVSPY和其DLL版本W32SPDLL.DLL放入共享内存的重要性,这是因为系统需要DLL在与系统核心组件相同的地址空间中运行,以确保功能的正常执行和内存的有效利用。通常,这需要精确控制DLL的基址和数据节区的属性,例如使用KERNEL32的基址进行定位,并确保.data、.idata和.bss节区被标记为可读、可写和共享(RWS)。 在实现这一目标时,作者发现仅仅告诉链接器基址不足以解决问题,因为Windows 95可能出于安全考虑将DLL重定位到私有地址空间。因此,必须确保DLL的资料节区是可共享的,这样Windows 95的载入器才能将其正确地放置在共享内存区域。 整个过程涉及到对Windows 95内存管理机制的深入理解,包括系统DLL的内存分配策略,以及如何通过编程技巧来适应这种限制。通过这种方式,读者不仅可以学习到高级的编程技术,还能了解到操作系统内部的工作原理,这对于理解和开发系统级应用程序具有重要的指导意义。 该书的价值不仅在于其技术内容,还在于它提供了实践操作的机会,比如作者提到的学生课程中,学生们实际编写拦截Windows系统程序的练习,这有助于培养学生的系统级编程技能,让他们更深入地理解操作系统的核心运作。 《Windows95系统程序设计大奥秘》是一本适合对Windows底层编程感兴趣的开发者和研究人员的宝贵资源,它不仅提供了理论知识,而且提供了实战经验和应用实例,对于理解Windows 95时代的系统编程有着不可替代的作用。尽管随着时代变迁,部分技术细节可能不再适用现代Windows,但其对基础原理的讲解依然具有很高的参考价值。