windows的底层是如何实现磁盘读写的?
一、个人分析:
1.如果使用INT 13,那么它是16位代码,就意味着读到的数据必须要放到最低的1M内存中,如此一来,当文件非常大时,会多次读写,显然效率地下。
2.如果把int 13的过程的代码放到了自己的地址空间,对应一些IDT表项,倒是说得过去。
3.如果采用端口读写,倒是还可以,不过我感觉windows不是通过端口读写磁盘的,因为冰点还原精灵是通过截获中断来实施磁盘保护的,估计是截获的int 13。不过也可能是截获的IDT的int 13,如果如此,还真可能是通过端口读写实现的。
二、求硬盘端口(1f0~1f8)的详细资料