社区
C++ Builder
帖子详情
请教虚拟磁盘技术原理!!!
qibo999
2002-09-15 01:20:56
不知各位高手是否知道虚拟磁盘技术的原理?它是怎样实现的?我怎么也搞不明白,噢,分不够可以加啊
...全文
691
22
打赏
收藏
请教虚拟磁盘技术原理!!!
不知各位高手是否知道虚拟磁盘技术的原理?它是怎样实现的?我怎么也搞不明白,噢,分不够可以加啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CityHost
2002-12-29
打赏
举报
回复
自己编写磁盘控制器
linyudie
2002-10-11
打赏
举报
回复
CCLIS(正职不明,业余编程),呵呵,"在WINDOWS里使用虚拟盘,也需要在CONFIG里进行设定",怎么设啊,我不明白,呜呜,惭愧,
"而COONFIG里的设定是在COMMAND.COM调用前就调用了,牵涉到很底层的东西,既要考虑到文件的句柄问题,还要考虑到DOS中的INT 13磁盘中断,"是指9x么??句柄??int 13??是vxd吧??我不大会,但是不好意思,想知道一下,:)
到底是什么意思,你是说挂接vxd得虚拟int13,然后写文件??可要是在command.com之前的话,你怎么能打开文件的啊,那时候系统还没有配好啊??不懂:(
linyudie
2002-10-11
打赏
举报
回复
呜呜,做好了,不过真的没有什么可说的,都是按照ddk一步步来的,在开始建立一个
FILE_DEVICE_DISK得设备,自定义一个IO控制码,用来打开文件,在IRP_MJ_READ,
IRP_MJ_WRITE的时候
ZwReadFile(...,MmGetSystemAddress,...),
ZwWriteFile(...,MmGetSystemAddress,...),你打开的文件,
不过打开和读写文件要放在一个线程函数,需要得时候用一个事件通知
大部分得控制码pIrp->IoStatus.Status=STATUS_SUCCESS,pIrp->IoStatus.Information=0就可以了结了:)
linyudie
2002-10-05
打赏
举报
回复
不好意思,病倒了,养了好几天病,呜呜,:)
csz_cmy(PIC&C51) ,我的现在已经可以用了,但是怎么弄成别的文件系统格式,我只能是fat16(不过可以用长文件名),我格式化的时候总是出错,说不能格式化,还有我要是把zwcreatefile和zwwritefile 分在irp_mj_deviceiocontrol和irp_mj_read/write里,file_disk_device的话就不行,错误码c00000024,0的个数可能不对,自己数吧,呵呵:)
害的我只好把他们放在一个线程了,呜呜:(
CCLIS
2002-10-05
打赏
举报
回复
好象WINDOWS里没有虚拟盘的概念,虚盘只是在DOS下使用的东东,在WINDOWS里使用虚拟盘,也需要在CONFIG里进行设定。
而COONFIG里的设定是在COMMAND。COM调用前就调用了,牵涉到很底层的东西,既要考虑到文件的句柄问题,还要考虑到DOS中的INT 13磁盘中断,呵呵,看来在WINDOWS下编写的难度有点高。
==================================================================
http://www.cclis.com
linyudie
2002-09-22
打赏
举报
回复
呜呜,那你还是先看看驱动程序吧,因为driver和application不一样的,你会看到一堆从没见过的概念,函数,roution,和一堆到处找不到的结构,地址也变得怪怪的,而且原来的C函数和API差不多一个也不能用了:(
对了,也不能用什么面向对象的方法(VTOOLS例外,那是专门封装的),讨厌死了,还不好调试(我用的是softice,而且一有错就是一个蓝屏,重启,烦啊,呜呜)
代码的话,我正好在写一个差不多的,顺利的话过几天帖一点(现在的还没有试呢,不知道又没有错)
csz_cmy
2002-09-22
打赏
举报
回复
我正在做......
kernelspirit
2002-09-22
打赏
举报
回复
高深,关注!
huzhangyou
2002-09-17
打赏
举报
回复
尤其有当停电时
内存的东西如何保存
huzhangyou
2002-09-17
打赏
举报
回复
同意xdspower的
这个问题真的很低层
可能你要对系统非常了解
TopCat
2002-09-17
打赏
举报
回复
我认为这主要是一个驱动程序的问题吧,大体思路应该这样:
驱动程序申请一块内存,然后实现磁盘操作的接口,在里面实现文件保存、删除之类的操作(当然是在那个内存里)等等,
没做过驱动,应该是这样一个思路吧。
============================================
★仗剑走江湖 小侠令狐虫★
============================================
毕加索的画
2002-09-17
打赏
举报
回复
有意思!
xdspower
2002-09-17
打赏
举报
回复
应该可以的,应该要设计驱动程序(毕竟有些操作比较底层)其实你可以想的就是把win的虚拟内存技术反着用
qibo999
2002-09-17
打赏
举报
回复
感谢各位的发言,我的意思是指动态磁盘映射:将内存或者什么映射成一个虚拟盘,并生成虚拟盘映射文件,动态修改映射文件。
这个技术真的很难吗?希望各位高手讨论一下,大家共同学习嘛!我想这应该属于VxD/WDM的概念吧,愿抛砖引玉。
qibo999
2002-09-17
打赏
举报
回复
谢谢 linyudie(linyudie)!
能否系统一点说明一下过程(尽量详细点啊),我没有接触过驱动编程,所以没有着方面经验,或者能给点原码、介绍点资料也行啊,多谢了!
linyudie
2002-09-17
打赏
举报
回复
写错了,第一句话是说用一个文件作为映射,因为在zwcreatefile的时候是要用的:)
linyudie
2002-09-17
打赏
举报
回复
用一个来做映射文件,而后做一个驱动程序,在DriverEntry里将那个文件建立为设备(设备类型一定要用file_disk_device,不要像平时那样使用unknow),实现全部的irp_mj_XXX(当然有irj_mn_XXX也别放过哦,呵呵),重要的是还要自己仿照硬盘虚拟出它的逻辑结构(就是柱面扇区的了),其实到可以用很大一部分系统自己的东西,比如很多irp是可以直接下传的,
不过TopCat说的实现文件保存、删除之类的操作是没有的,那些不属于设备驱动的部分,当建立正确的设备之后,有相应的高层fsd,过滤器驱动,类驱动去处理,我们要做的只是作为一个设备应当作的工作
qibo999
2002-09-17
打赏
举报
回复
我见过有好多应用了类似技术的软件,作过的朋友能否说说?也让大家学习学习?
qibo999
2002-09-17
打赏
举报
回复
我觉得内存的东西是动态保存的,它和一个硬盘映像文件建立关系,只是它们是怎么对应的,格式是什么,以及怎样不受物理内存大小限制?实在搞不明白,这里这么多业内高手,不会每人知道吧?
gfh21cn
2002-09-15
打赏
举报
回复
是阿,
每见识过这种技术
难度很大。
加载更多回复(2)
什么是
虚拟
内存?
虚拟
内存的
原理
虚拟
内存 最近看Binder
原理
的时候,讲到一个概念MMap,Memory Map,内存映射,一言蔽之就是物理内存和
虚拟
内存的映射(这个不是重点)。然而突然产生个疑问——什么是
虚拟
内存?我大概是傻了,横竖睡不着,坐起身来,看了很多帖子,字里行间写着两个大字“懵逼”。一方面我着急弄清楚Binder、mmap
原理
,一方面悬在我心里的疑问让我惶惶不可终日,左思右想,还是先弄清楚什么是
虚拟
内存,毕竟不积畦步无以至千里。 坎坷之路 什么是
虚拟
内存?我百度半天,帖子不少,或许是我愚钝理解能力不行,没有一篇帖子能告诉
后端面经(已收到腾讯实习offer)
大家好,这篇博客是我博客生涯的第一篇博客,所以想先和大家分享一下春招过程中的收获和感受。由于博主是新手,如有需要改进的地方或者不明白的地方,请在评论区留言,博主将在第一时间赶赴现场与君讨论和
请教
。谢谢大家!!! 下面将知识点做个总结: 数据结构: 链表和数组的区别(内存上的分布、增删查的时间复杂度) 树的先根、中根、后根遍历(延伸出来波兰序列和逆波兰序列) 双链表的增删查 图的深度优先...
《OpenStack实战指南》—— 导读
前 言 在2007年前后,许多网站站长发现当时一部分主流机托管商开始逐步使用
虚拟
化
技术
提供云主机的托管服务,而当时的
虚拟
化程度还停留在半
虚拟
化或类似OpenVZ这样的伪
虚拟
化的水平。即便如此,一台服务器已经可以承载数十台甚至上百台
虚拟
主机的负荷,而且安全性更好,价格也更低。通过更加有效的隔离和封装,
虚拟
主机的创建和恢复也变得更加迅速和可靠。与此...
存储备份,从入门到精通系列讲座!尽量用最通俗的语句表达,初学者请看
现在把我学存储备份的一些经验共享,曾经绕了不少弯道,
请教
了不少高手,挨了不少熊,不容易学了些东西,还不知道对不对,希望大家多纠正错误,就是这个目的了。(此帖由冬瓜头qq122567712原创,转贴请注明,谢谢!痛斥剽窃行为!) 关于为什么要存储备份,我就不说了,见谅!(此帖由冬瓜头qq122567712原创,转贴请注明,谢谢!痛斥剽窃行为!) 现在企业部署数据网络,一般有三中...
聊聊数据库~5.SQL运维上篇
1.6.SQL运维篇 运维这块逆天只能说够用,并不能说擅长,所以这篇就当抛砖之用,欢迎补充和纠错 PS:再说明下CentOS优化策略这部分的内容来源:首先这块逆天不是很擅长,所以主要是参考网上的DBA文章,之后
请教
了下运维相关的朋友,大家辩证看就行了,我只能保证90%的准确度(具体看业务) 1.6.1.概念 1.RAID系 RAID:
磁盘
冗余队列 把多个容量小的
磁盘
组成一组容量更大的
磁盘
,并提...
C++ Builder
13,826
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章