FILE :用于 Windows 2000 的 Ramdisk.sys 示例驱动程序
文章 ID : 257405
最后更新日期 : 2004年9月21日
版本 : 1.0
重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要备份注册表,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明
本页内容
概要
更多信息
参考
概要
Ramdisk 是一个用于演示纯软件的 Windows(r) 2000 设备驱动程序的示例。此驱动程序会创建一个指定大小的 RAM 盘。您可以像使用任何其他磁盘一样使用此 Ramdisk,但在您关闭计算机时该磁盘的内容会丢失。(一般来说,Windows(r) 2000 缓存管理器在优化内存使用方面比 Ramdisk 要好得多。)
本文中包含的生成和安装驱动程序的说明仅适用于 Windows(r) 2000。
注意:本示例提供了一个最小 驱动程序的示例。此驱动程序和示例程序都不能用于生产环境。它们只用于教学,是驱动程序的简化版本。
更多信息
从 Microsoft 下载中心可以下载以下文件:
立即下载 Ramdisk.exe
发布日期:2000 年 4 月 6 日
有关如何下载 Microsoft 支持文件的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
119591 如何从联机服务获取 Microsoft 支持文件
Microsoft 已对此文件进行了病毒扫描。Microsoft 使用的是该文件发布时可以获得的最新病毒检测软件。该文件存储在安全性已增强的服务器上,以防止在未经授权的情况下对其进行更改。 Ramdisk.exe 文件包含下列文件: 文件 描述
--------------------------
Ramdisk.c Ramdisk 示例驱动程序的源文件
Pnp.c 处理 PnP IRP 的源文件
Ramdisk.h 包含 Ramdisk 结构的包含文件
Debug.h 包含调试打印定义的包含文件
Sources 用于生成代码示例的通用文件
Makefile 标准的 Windows 2000 生成文件
Ramdisk.inf 用于安装驱动程序的安装文件
Ramdisk.htm 本示例的示例介绍文档
Ramdisk.sys Windows 2000 驱动程序文件(自由生成)
生成示例
单击 Development Kits(开发工具包)程序组下的 Free Build Enviroment(自由生成环境)或 Checked Build Enviroment(可调试的生成环境)图标,以设置生成实用工具所需的基本环境变量。
转到包含设备源代码的目录,方法是使用 CD C:\Drivers\Ramdisk 等命令。
运行 build -ceZ,或使用宏 BLD。这会调用 Microsoft 生成例程,该例程会生成名为 Buildxxx.log 的日志文件,并且如果存在任何警告或错误,还会生成 Buildxxx.wrn 和 Buildxxx.err,其中 xxx 代表"fre"或"chk",具体取决于所选择的环境。如果生成成功,驱动程序 Ramdisk.sys 文件将放置在 %TargetPath% 文件夹(在 Sources 文件中指定)中一个特定于平台的子文件夹中。
安装示例
要安装驱动程序,请按照下列步骤操作: 1. 在控制面板中,双击以启动添加/删除硬件实用工具。
2. 选择添加/排除设备故障。
3. 选择添加新设备。
4. 选择否,我想从列表选择硬件。
5. 选择其它设备,然后单击下一步。
6. 单击从磁盘安装按钮,并指向包含 Ramdisk.inf 文件的文件夹。
系统将把 Ramdisk.sys 文件复制到 %Systemroot%\System32\Drivers 文件夹并加载该驱动程序。
配置 Ramdisk 驱动器
警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。
可以使用注册表配置 Ramdisk。Ramdisk.inf 文件包含所有可配置参数的默认值。以下是对各个参数的简短说明:
BreakOnEntry REG_DWORD 0
这是一个布尔值,它确定在 DriverEntry 例程中是否生成了断点。它对自由生成的驱动程序没有影响。
DebugLevel REG_DWORD 0
该值指定生成的诊断消息的级别。值越大,生成的消息越详细。取值范围为 0 到 3。它对自由生成的驱动程序没有影响。
DebugComp REG_DWORD 0xFFFFFFFF
该值指定在其中打印调试消息的组件。每个位指定一个组件。有关组件列表,请查看 Debug.h。它对自由生成的驱动程序没有影响。
DiskSize REG_DWORD 0x100000 (1,048,576 1Mb)
该值是 Ramdisk 驱动器的大小,以字节为单位。
DriveLetter REG_SZ Z:
该值是与 Ramdisk 驱动器相关联的默认驱动器号。
RootDirEntries REG_DWORD 512
该值是根目录中项的数目。
SectorsPerCluster REG_DWORD 2
该值是分配单元的粒度。
Windows XP 更新:
在仅包含 NTFS 的计算机中安装 Ramdisk 示例驱动程序可能会导致该驱动程序无法使用。要解决此问题,请进行以下更改:
当您调用 IoCreateDevice 函数(pnp.c 中的 RamdiskAddDevice 函数)时,请将设备类型从 FILE_DEVICE_VIRTUAL_DISK 更改为 FILE_DEVICE_DISK,并重新编译该驱动程序。安装该驱动程序后,请重新启动系统,以便可以通过资源管理器访问 Ramdisk。
参考
Microsoft Windows 2000 驱动程序开发包