dengzg
驱动牛犊
驱动牛犊
  • 注册日期2002-07-16
  • 最后登录2012-07-23
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望49点
  • 贡献值0点
  • 好评度44点
  • 原创分0分
  • 专家分0分
阅读:2027回复:8

windows nt,2000,xp,2003从MBR开始到系统启动这个过程中,是怎么读写磁盘的呀?

楼主#
更多 发布于:2005-07-15 13:14
  windows nt,2000,xp,2003从MBR开始到系统启动这个过程中,是怎么读写磁盘的呀?
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-07-18 12:45
下面是引用dengzg于2005-07-15 13:14发表的windows nt,2000,xp,2003从MBR开始到系统启动这个过程中,是怎么读写磁盘的呀?:
  windows nt,2000,xp,2003从MBR开始到系统启动这个过程中,是怎么读写磁盘的呀?

那要看是什么文件系统了
如果是NTFS就是MFT操作 主要是列目录 下面就是列一个文件的过程。
1读取分区表信息,找到磁盘C的起始扇区。
2读取C盘的第一个扇区(分区的BOOTSETOR)取得分区的每簇大小,MFT表                            起始簇号,每簇大小等信息。
3.读取MFT表的第五个记录(根目录)找到目录索引所在簇号。
4.读取索引,查找WINNT目录所在的MFT记录号
5.读取WINNT目录的MFT记录,找到目录索引所在簇号。
6.读取索引,查找SYTEM32目录所在MFT记录号
7. 读取SYTEM32目录的MFT记录,找到目录索引所在簇号。
8. 读取索引,查找ANSI . SYS所在MFT记录号
9. 读取ANSI .SYS文件的MFT记录,找到它的DATA属性。
---内核开发合作或提供基础技术服务QQ:22863668 ---
dengzg
驱动牛犊
驱动牛犊
  • 注册日期2002-07-16
  • 最后登录2012-07-23
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望49点
  • 贡献值0点
  • 好评度44点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-22 09:53
这些读写是通过int 13来实现的吗?听说windows nt/2000/xp已经不是通过int 13来读写磁盘了,那它是用什么方式呢?
zhangshengyu
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2005-07-22 13:41
下面是引用dengzg于2005-07-22 09:53发表的:
这些读写是通过int 13来实现的吗?听说windows nt/2000/xp已经不是通过int 13来读写磁盘了,那它是用什么方式呢?

我上面好像没有说用INT 13实现吧
直接设备IO
---内核开发合作或提供基础技术服务QQ:22863668 ---
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-07-23 10:38
下面是引用dengzg于2005-07-22 09:53发表的:
这些读写是通过int 13来实现的吗?听说windows nt/2000/xp已经不是通过int 13来读写磁盘了,那它是用什么方式呢?

在硬盘驱动未加载前,windows nt/2000/xp确实还是得靠BIOS的int 13来读写磁盘的
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
fengmm
驱动牛犊
驱动牛犊
  • 注册日期2001-07-25
  • 最后登录2008-10-21
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-07-23 15:37
用int 13读写的..即使系统启动后,读写磁盘也是调用int 13来完成的...
free bird
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-07-24 11:22
下面是引用fengmm于2005-07-23 15:37发表的:
用int 13读写的..即使系统启动后,读写磁盘也是调用int 13来完成的...

但是硬盘驱动被加载后就不是int 13,BIOS整体都被移走了
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
yuanyuan
驱动大牛
驱动大牛
  • 注册日期2003-01-15
  • 最后登录2010-08-04
  • 粉丝0
  • 关注0
  • 积分1025分
  • 威望300点
  • 贡献值0点
  • 好评度232点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-07-24 18:32
系统被加载后,在NT下不是用int 13来读写磁盘的
fengmm
驱动牛犊
驱动牛犊
  • 注册日期2001-07-25
  • 最后登录2008-10-21
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-07-24 21:39
free bird
游客

返回顶部