- 主要观点:探讨 DOS 3.3 的 SYS.COM 命令在与 NetDrive 配合使用时出现的问题,即会破坏 NetDrive 硬盘镜像的 BPB(BIOS Parameter Block),导致无法再次挂载镜像,而对软盘镜像则工作正常。
关键信息:
- SYS.COM 除了将操作系统的隐藏文件复制到目标驱动器外,还会将一些引导代码复制到磁盘的第一个扇区。
- 在与 NetDrive 配合使用时,DOS 3.3 的 SYS.COM 命令会添加引导代码并正确更新 FAT,但会破坏 BPB。
- DOS 3.2 增加了“通用 IOCTL”功能,DOS 可通过该功能查询设备的几何结构等信息,但 NetDrive 设备驱动不支持此功能,导致 SYS.COM 调用失败。
- SYS.COM 存在缺陷,未检查通用 IOCTL 调用的返回码,导致错误的 BPB 数据被写入卷引导记录。
- 媒体描述字节(media descriptor byte)用于描述镜像的布局,但往往不足以确定工作对象,需结合物理驱动器类型的知识。
重要细节:
- 展示了不同情况下磁盘镜像的 BPB 结构变化,如初始创建的 FAT12 NetDrive 镜像的 BPB 结构,以及 SYS.COM 操作后的变化。
- 提供了关于通用 IOCTL 调用的相关代码截图和调试信息,如调用“获取设备参数”的过程及返回的错误码。
- 解释了 SYS.COM 在软盘镜像和硬盘镜像上工作的差异,以及为何会出现这种差异。
- 指出该 bug 可能在 DOS 3.2 引入,且在 DOS 4.0 中仍存在。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。