没有合适的资源?快使用搜索试试~ 我知道了~
VR虚拟现实-虚拟磁盘的设计与操作 精品.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 192 浏览量
2022-11-20
15:15:24
上传
评论
收藏 35KB DOCX 举报
温馨提示
![preview](https://dl-preview.csdnimg.cn/87096282/0001-1a6c3e239b14261ced2d9f532f4ec5a5_thumbnail-wide.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
试读
14页
VR虚拟现实-虚拟磁盘的设计与操作 精品.docxVR虚拟现实-虚拟磁盘的设计与操作 精品.docx
资源推荐
资源详情
资源评论
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/release/download_crawler_static/87096282/bg1.jpg)
虚拟磁盘的设计与操作
——李季季
摘要:
通常情况下是在磁盘上建立文件系统即硬盘分区,文件系统驱动程序(FSD)已经实现了在硬
盘上创建和管理文件,本系统主要实现将一个文件虚拟成一个相应的磁盘,在文件系统驱动程序
的基础之上,实现基于虚拟设备的文件系统,这种虚拟技术得到了很多应用,例如虚拟光驱就是
其中之一,我们将对磁盘进行相关的操作。
关键字:
函数
加载模块
读写操作 卸载模块
格式化
一.整体功能概述:
1. 通过命令行输入/mount 的加载相应虚拟磁盘的命令,执行完毕后便可以在“我的电脑”中看
到又多出了与命令行输入相应的盘符,通过 format 将磁盘格式化或通过右键选择格式化成相
应格式后,便可以对它操作。
2. 通过命令行输入/mount 的加载相应虚拟磁盘的命令,执行完后便可以在“我的电脑”中看到
又多出了一个虚拟的磁盘,便可以对它执行读写操作。
3. 在命令行下输入/umount 的卸载相应虚拟磁盘的命令,执行完后便可以卸载除刚才加载的虚拟
磁盘。
二.设计的描述:
通常情况下是在磁盘上建立文件系统即硬盘分区,文件系统驱动程序(FSD)已经实现了在
硬盘上创建和管理文件,本系统主要实现将一个文件虚拟成一个相应的磁盘,在文件系统驱动程
序的基础之上,实现基于虚拟设备的文件系统,这种虚拟技术得到了很多应用,例如虚拟光驱就
是其中之一。虚拟磁盘文件系统经过安装可以模拟真实的硬盘,支持各种文件系统功能。
三.基本的数据结构
![](https://csdnimg.cn/release/download_crawler_static/87096282/bg2.jpg)
Main
FliediskSyntax
FileDiskMount
FileDiskUmount
FileDiskStatus
PrintLastError
(1)全局变量 dir_handle
HANDLE dir_handle;
该全局变量用于指向一个“目录对象”,存放本驱动程序创建的所有的磁盘对象。
(2)模拟磁盘文件信息结构 OPEN_FILE_INFORMATION
typedef struct _OPEN_FILE_INFORMATION{
DEVICE_TYPE
BOOLEAN
DeviceType;//所模拟的磁盘的类型
ReadOnly;//是否设置虚拟磁盘为只读
FileSize;//本文件的大小
LARGE_INTEGER
USHORT
FileNameLength;//文件名的长度
FileName[1];//文件名字符串
UCHAR
}OPEN_FILE_INFORMATION;
该结构保存了用于虚拟磁盘的文件的详细信息。在应用程序利用 mount 命令制定这个文件时,会
将文件的信息组成这样一个结构后作为参数传入内核。驱动程序会抽取这些信息,并把它们作为
虚拟磁盘的磁盘信息,例如磁盘的大小好只读属性。
(3)设备扩展结构 DEVICE_EXTENSION:
自定义的磁盘信息结构,用来保存设备的细节以及对设备的编程方式。
Typedef struct _DEVICE_EXTESION
{
BOOLEAN
media_in_device;
HANDLE
file_handle;//文件句柄
file_name;//文件名
ANSI_STRING
![](https://csdnimg.cn/release/download_crawler_static/87096282/bg3.jpg)
LARGE_INTEGER
BOOLEAN
file_size;//文件的大小
read_only;//只读属性
PSECURITY_CLIENT_CONTEXT security_client_context;
LIST_ENTRY
KSPIN_LOCK
KEVENT
list_head;
list_lock;
request_event;
thread_pointer;
terminate_thread;
PVOID
BOOLEAN
}DEVICE_EXTENSION,*PDEVICE_EXTENSION;
本驱动程序所创建的虚拟对象均为自己维护这样一个数据结构。实际上,所有内核驱动程序
中的设备对象都维护这样一个数据结构。其主要作用就是在此保存对应设备的一些参数,使得所
有有关此设备的处理都可以通过设备对象访问到这些信息。
相关函数介绍
(1)入口函数 DirverEntry
DirverEntry(
IN PDRIVER_OBJECT
IN PUNICODE_STRING
DriverObject,
RegisterPath
)
该函数主要实现建立相应个数的磁盘对象和向 I/O 管理器注册 4 个分发例程以处理来自应用程序
的相应请求。
(2)分发例程 FileDiskCreateClose
FileDiskCreateClose(
IN PDEVICE_OBJECT
IN PIRP
DriverObject,
Irp
)
在这个函数中相应打开文件和关闭文件对象的请求,对应主功能代码
IRP_MJ_CREATE 和
IPR_MJ_CLOSE。在函数中就是简单的返回打开成功的标记,不需要完成额外的工作。
剩余13页未读,继续阅读
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/3c39599dc7cf4373a282763035024fb7_m0_62089210.jpg!1)
春哥111
- 粉丝: 1w+
- 资源: 5万+
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)