一、 概念

虚拟磁盘事实上只是一个文件(文件夹也可以看作一个文件的),以磁盘形式出现。这个文件存在于内存,无论是操作系统还是应用程序向虚拟磁盘读/写数据,都是在向内存读/写数据。

所以:1. 读写速度快。内存的速度要快于硬盘。

2. 具有易失性。计算机一旦断电或重启,这个虚拟磁盘就会消失。

本地磁盘(X:)是一个虚拟磁盘。

二、创建虚拟磁盘的方法

(1)DOS命令 subst

subst X: F:\Test

-->subst 磁盘符 要变成磁盘外表的文件或文件夹的路径

注:改动虚拟磁盘里的内容,原来文件夹的内容也会同步被改变。

服务器上有权限的文件夹也可以通过这种方式直接创建虚拟磁盘。

(2)下载filedisk源代码

1. 将filedisk.sys 拷到C:\Windows\system32\Driver目录下

2. 双击filedisk.reg,将注册表信息写入

3. 将filedisk.exe放在C:\目录下。(这个应该是非必要,只是为了方便)

4.将要变身的文件或文件夹做成ima镜像文件。(用WinImage软件可以制作)

注:改变虚拟磁盘的内容,原来文件夹的内容不会改变

三、文件系统结构

文件驱动----更上层的驱动,管理文件的所有属性和内容,面对的是单个的文件对象。

磁盘驱动----文件驱动之下,所有对文件的读写,已经被上层的文件驱动转换成单纯的扇区和位置偏移的读写请求。

(所有的文件操作,都会通过文件驱动,最终进入到目标磁盘。这个时候,磁盘驱动就发挥了它应该有的作用,他协调控制磁盘硬件和上层驱动的读写请求。)

虚拟磁盘驱动----模拟出一块虚拟磁盘,对这块虚拟磁盘上的所有文件读写请求, 转化成虚拟磁盘驱动对’虚拟扇区'的读写请求。

Filedisk:WDM框架

分为驱动层和应用层两个模块。

在驱动层调用IoCreateDevice函数来创建一个虚拟磁盘设备;

在应用层调用DefineDosDevice把在驱动创建的设备和自定义的盘符关联起来(创建符号链接),科学名称叫(mount)挂载,之后就可以对这个磁盘操作如正常的其他磁盘一样操作了。

RamDisk:WDF框架

虚拟磁盘(1)--前期知识相关推荐

  1. 接口测试学习入门(1)--前期知识储备

    转自:http://www.cnblogs.com/alwayswyy/p/5481574.html 接口测试学习入门(1)--前期知识储备 接口测试前必需知识了解: 1.接口测试的原理: 无论用那种 ...

  2. 你对Java网络编程了解的如何?Java BIO 网络编程 | Netty 前期知识

    一步一步走来,之前去学习了JUC并发编程知识,现在终于到Java IO网络编程啦,难啊. 一.BIO介绍 引入: 随着技术的发展,两个或以上的程序必然需要进行交互,于是提供了一种端到端的通信,相当于对 ...

  3. 【淘宝】从开店到运营 - 开店前期知识(天猫、淘宝店铺介绍)

    开发中发现,对好多电商概念模糊,就想到从淘宝开店流程开始,理解客户(产品经理)在想什么... 视频:https://www.bilibili.com/video/BV1c4411p7vd?from=s ...

  4. unity网络实战开发(丛林战争)-前期知识准备(011-c#连接数据库并实现增删改查以及sql注入问题)

    使用工具:VS2015,Mysql 使用语言:c# 作者:Gemini_xujian 参考:siki老师-<丛林战争>视频教程 继上一篇文章内容,这节课讲解一下数据库的前期连接准备以及通过 ...

  5. 第十二届蓝桥杯Java B组——前期知识汇总梳理

    本章内容包括 1.掌握基础结构的写法: 自定义数据类型的快排 自定义数据类型的优先队列 普通数据类型的优先队列 归并排序 什么时候使用归并排序? 归并排序+自定义数据类型+自定义排序的综合性问题(DN ...

  6. 关于码云的一些基本知识_网络攻防前期知识储备 - osc_ojkfylwq的个人空间 - OSCHINA - 中文开源技术交流社区...

    一.如何提问 1.我的观点:提问分为课堂提问和课下提问两种.课堂中应该是当面交流的,更加鼓励当有疑问的时候在稍作整理思路后直接大胆的提问.课下疑问的解决,不可能时时的交流,更加需要独立的思考,而提问需 ...

  7. 网络攻防前期知识储备

    一.如何提问 1.我的观点:提问分为课堂提问和课下提问两种.课堂中应该是当面交流的,更加鼓励当有疑问的时候在稍作整理思路后直接大胆的提问.课下疑问的解决,不可能时时的交流,更加需要独立的思考,而提问需 ...

  8. 你对Java网络编程了解的如何?Java NIO 网络编程 | Netty前期知识(二)

    本文主要讲解NIO的简介.NIO和传统阻塞I/O有什么区别.NIO模型和传统I/O模型之间的对比.以及围绕NIO的三大组件来讲解,理论代码相结合. 很喜欢一句话:"沉下去,再浮上来" ...

  9. LINUX前期知识回顾

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1. 计算机硬件的五大单元 2. CPU架构 1.RISC 精简指令集 2.CISC 复杂指令集 ATT: 计算单位 1. ...

最新文章

  1. 使用Tape和Vue Test Utils编写快速的Vue单元测试
  2. 什么是URL?协议头,路径和端口是什么意思?
  3. 计算机视觉基本原理——RANSAC
  4. Android弹窗组件工作机制之Dialog、DialogFragment(二)
  5. Word中如何设置图片与段落的间距为半行
  6. CAS 单点登录模块学习
  7. hdu 1316 斐波那契数
  8. flex4 SuperTabNavigator 添加关闭图片
  9. PopClip:你会热爱的文本穿梭机
  10. 独立个人项目开发心得 - 任务切分、挑战性、实用性和半途而废
  11. 串口(UART)的FPGA实现(含源码工程)
  12. 【图书馆】——中英文对照表
  13. 软件测试中的心理学效应
  14. 湖州智慧社保显示服务器繁忙,湖州智慧社保
  15. php 除法,php中如何除法取整
  16. 最全元宇宙概念分析!元宇宙为何发展于区块链?
  17. 关于聚类问题的算法python代码实现-K-均值聚类方法
  18. ifconfig 详解
  19. matlab模拟光伏发电,基于Matlab/Simulink的三相光伏发电并网系统的仿真
  20. secureCRT安装和使用教程【图文并茂】

热门文章

  1. Bootstrap错误提示功能
  2. 方法比知识重要,人品比能力重要
  3. 视觉识别(Visual Recognition)-- 总结
  4. 2017CS231n李飞飞深度视觉识别笔记(十一)——图像识别和分割
  5. K8S存储值之PV和PVC
  6. 蛙蛙推荐:从C#到C语言
  7. python爬取链家_python+scrapy爬虫(爬取链家的二手房信息)
  8. idea配置tomcat启动web项目
  9. 搭建一个jupyter服务器让你在线写Python
  10. matlab stepwise 用法,matlabstepwise函数