|
|
本帖最后由 窄口牛 于 2025-12-31 13:44 编辑
ramdrv4m.rar
(148.53 KB, 下载次数: 0)
RAMDRV4M - 适用于 Windows 9x 的通用 RAM 驱动器
包含内容:
RAMDRV4M.PDR - 驱动程序
RAMDRV4M.INF - 安装文件
RAMDRV4M.REG - 设置示例
ParamsBySize.exe - 用于计算参数的工具
ParamsByEndAddr.exe - 同上
SPEED*.* - 不同 RAM 驱动器的速度比较文件
安装:
通过控制面板的“添加新硬件”(硬盘控制器)进行安装。
卸载:
在设备管理器中删除“RAM Drive 4M Controller”。
如果不想删除,可以在设备管理器中临时禁用该控制器;或者在遇到问题时,在 Windows 启动前重命名文件:
%windir%\SYSTEM\IOSUBSYS\RAMDRV4M.PDR
功能说明:
支持 4GiB 以上内存(默认模式)。
这是开发本软件的主要目的。
此类 RAM 驱动器的架构限制大小为 1TiB。
在此模式下无需额外设置。
完全功能的 32 位保护模式驱动程序。
高速运行。具体速度比较请见 SPEED*.* 文件夹。
仅供参考,代码部分参考了 Walter Oney 在 RAMDSK98 中使用的示例。
可利用其他软件在内存中创建的 RAM 驱动器。
特别是与 RLoew 的 RAMDSK32/64 兼容。
当与 RAMDSK64.COM 一起使用时,同样无需额外设置。
仅占用 4MiB 虚拟地址空间。
当然,这不包括 RAM 驱动器本身实际使用的物理内存。
适用于 Pentium 及以上级别的处理器(即不适用于 80486)。
设置说明(具体使用示例请见 RAMDRV4M.REG 文件):
设置用于驱动器的内存区域(最多 4 个):
"Chunk?.Base"=dword:00000000
"Chunk?.Size"=dword:00000000
主要用于在 4GiB 以下的内存中组织驱动器(或驱动器的一部分)。
设有一小段保护机制:会检查该区域是否未被操作系统内存管理器使用。
计量单位为 4MiB 页面。为方便通过常规地址计算,提供了两个辅助程序:
ParamsByEndAddr.exe(范围)和 ParamsBySize.exe(起始地址 + 大小)。
注意:现代 BIOS 的内存映射即使在硬件或 BIOS 设置未更改的情况下,也会在重启时浮动变化。因此在指定要使用的内存区域时,应为最坏情况留出余量。
若要使用 4GiB 以上的内存,不应设置任何参数。但如果希望限制此类驱动器的大小,可以设置 Chunk0.Size 参数而无需设置 Chunk0.Base。
通过内存管理器检查 RAM 驱动器内存是否未被操作系统使用:
"OSMemoryCheck"=hex:FF
要禁用控制,请设置为 0。仅当驱动器内存处于操作系统控制之下时才应禁用此检查。
确定 FAT32 卷上的簇大小:
"FAT32ClusterShift"=hex:1B
默认值为 27(十六进制),对应 4KiB 簇用于最大 64GiB 的驱动器,
8KiB 用于最大 128GiB,16KiB 用于最大 256GiB,32KiB 用于超过 256GiB 的驱动器。
该值的计算公式为:log2(驱动器大小(字节)) - 9。
例如:
"FAT32ClusterShift"=hex:17 - 4KiB 簇用于最大 4GiB 的驱动器
"FAT32ClusterShift"=hex:20 - 4KiB 簇用于最大 1TiB 的驱动器(即达到最大可能值)
在大分区上使用 FAT16 的参数:
"UseFAT16"=hex:FF
取值说明:
0 - 不使用(使用 FAT32),
1 - 使用,
2 及以上或未设置 - 根据操作系统对 FAT32 的支持自动决定:
DOS 7.0 使用 FAT16,DOS 7.10+ 不使用。
使用先前已在内存中创建的驱动器:
"UseGoodDrive"=hex:00
在设备管理器中停止并重新启动控制器后使用驱动器。默认关闭。开启此功能通常是安全的。
仅供娱乐用途:
"UseGoodDriveAfterReboot"=hex:00
在“热”重启后使用驱动器。默认禁用。
即使在内存高于 4GiB 的驱动器上开启此功能也不安全——现代 BIOS 中,4GiB+ 地址空间开头的驱动器头部可能被保留,但内存可能在地址空间的中间某处被更改(原因不明,但实际情况如此)。因此,需要先进行验证(向整个驱动器写入数据,重启后比较原始数据)。
示例:在我的笔记本电脑上重启可正常使用,但在新的工作机上则不行,内存在大约 5GB 处发生变化。
在起始地址检查是否存在第三方内存驱动器:
"CheckExternalVolume"=hex:FF
默认启用。如果检测到驱动器,有两种选项(通过配置)——要么使用该驱动器,要么留给旧软件控制。默认启用的使用选项:
"GrabRMVolume"=hex:FF
"GrabExternalVolume"=hex:FF
第一个参数定义是否使用已知的 DOS 驱动器(例如 RAMDSK32/64),第二个参数定义是否使用所有其他驱动器(目前暂无示例)
使用全局内存页(在支持该特性的处理器上):
"PageGlobal"=hex:FF
默认启用,可带来轻微的速度提升
最大 I/O 数据包大小:
"MaximumTransferLength"=dword:FFFFFFFFFF
默认无限制。最小值为 dword:00010000(64KiB)
创建或使用驱动器时不进行任何检查:
"RawImageSectorCount"=dword:00000000
默认禁用。"RawImageSectorCount" = dword:FFFFFFFF - 以标准方式设置大小,对 4GiB 以上的内存驱动器有用
虚拟驱动器的参数,每磁道磁头数和扇区数:
"RawImageHeads"=hex:00
"RawImageSectorsPerTrack"=hex:00
默认未设置,通过 LBA 辅助转换方法自动检测
在使用映像前进行额外操作:
"RawImagePrepare"=hex:00
默认不执行任何操作。
位掩码说明:
0x01 - 清除前 32 个扇区
0x02 - 在第零扇区末尾设置引导标记 0xAA55
0x04 - 在第零扇区设置 NT 磁盘签名
0x08 - 在第零扇区开头设置 FAT 引导签名
使用驱动器的非缓存内存访问模式:
"UncachedMode"=hex:00
默认关闭,使用缓存访问模式
|
|