2026/1/16 1:55:03
网站建设
项目流程
征婚网站怎么做,专业北京网站建设公司哪家好,浙江建设局图审网站,有什么网站可以免费做图16位驱动DLL入门指南
一、为何驱动DLL通常为16位 在Windows 3.x时代,微软建议开发者将所有硬件驱动打包为VxD(Windows的“真正”设备驱动)。然而,许多开发者(包括微软自身)并未遵循这一建议,而是将驱动功能放入DLL中。毕竟,VxD的学习曲线很陡峭,而打包为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。