当前位置: 首页 > news >正文

23、16位驱动DLL入门指南

16位驱动DLL入门指南

一、为何驱动DLL通常为16位

在Windows 3.x时代,微软建议开发者将所有硬件驱动打包为VxD(Windows的“真正”设备驱动)。然而,许多开发者(包括微软自身)并未遵循这一建议,而是将驱动功能放入DLL中。毕竟,VxD的学习曲线很陡峭,而打包为DLL的驱动也能胜任工作(不过,像串口驱动这类需要快速中断响应时间的驱动除外)。

如今,微软建议Windows 95开发者将硬件驱动打包为VxD。这一次,该建议更难被忽视,因为Win32 DLL被禁止执行大多数“驱动”类型的操作,禁止的操作包括:
- 访问内存映射硬件
- 执行DMA传输
- 处理硬件中断
- 发出软件中断

由此可见,若不违反这些规则,唯一能打包为32位DLL的驱动类型是最简单的那种:用于I/O映射设备的轮询模式驱动(无中断)。

许多Windows 95开发者因此听从微软建议编写VxD。不过,若将驱动构建为16位DLL,仍可编写复杂的驱动,因为16位DLL不受Win32 DLL的相同限制。实际上,微软提供的许多标准驱动(包括鼠标驱动和多媒体驱动)仍是16位的。但在Windows 95下使用16位DLL,除了驱动DLL外,还需要编写另一个DLL:thunk DLL。

二、16位DLL与32位应用程序的接口

在Windows 95中,无论与DLL接口的应用程序是旧的16位Windows 3.x应用程序还是新的32位Win32应用程序,驱动DLL始终是16位的。若要让16位驱动DLL被Win32应用程序使用,必须编写一个转换层,在32位和16位世界之间进行转换,这个转换层称为thunk DLL。

http://www.cnnetsun.cn/news/162001.html

相关文章:

  • 32、Windows驱动程序中的定时器使用与英特尔架构解析
  • ArcGIS大师之路500技---037普通克里金VS泛克里金
  • QQ音乐API终极指南:快速搭建专属音乐数据服务
  • Auto-install 终极指南:智能依赖管理全解析
  • iOS上架被卡在 4.3条款 怎么办?分析应用被判定为相似应用的常见原因
  • Langchain-Chatchat协同编辑设想:多人同时维护知识库的可能性
  • 终极指南:用Docassemble快速搭建智能文档生成系统
  • 评测:Anthropic 最新发布的 Claude Opus 4.5 - 技术亮点与未来展望
  • Langchain-Chatchat多实例负载测试:JMeter压测结果分析
  • Langchain-Chatchat术语库管理:确保专业词汇一致性
  • 7步掌握Bucket4j:Java应用中的高性能速率限制方案
  • Langchain-Chatchat Grafana看板设计:全方位掌握系统状态
  • Kratos自适应降级:构建弹性微服务的智能防护体系
  • Yazi终极指南:如何在5分钟内搭建极速终端文件管理器
  • Langchain-Chatchat异地多活架构设计:跨区域容灾能力构建
  • 揭秘Whisper语音识别:从声音波形到精准文本的AI魔法
  • Langchain-Chatchat内存泄漏检测:长期运行稳定性保障
  • Langchain-Chatchat思维链(CoT)应用:复杂问题分步推理实现
  • Nextest:重新定义Rust测试效率的终极指南
  • 应用材料 0190-14927
  • Langchain-Chatchat SQL注入防护:MyBatis防攻击最佳实践
  • ssl_ciphers 配置详解
  • SpringBoot+Vue Spring boot社区医院管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL
  • 基于SpringBoot + Vue的青少年心理健康平台的设计与实现
  • 基于数据挖掘的小米手机营销数据分析与可视化
  • kanass全面介绍(23) - 如何将评审与企业微信通知相结合
  • Langchain-Chatchat是否支持语音输入?扩展功能开发思路分享
  • Langchain-Chatchat等保三级要求满足情况分析:国内合规指南
  • AI 提示词优化工具 v1.0:聚合提示词软件
  • 互联网大厂Java小白求职面试:从Spring Boot到微服务