请问大家,我机子上有两块硬盘,一块是SATA 1TB,一块是IDE 80GB。 我自己写了个程序来比较这两块硬盘上的文件是否相同,就是用FindFirstFile之类的函数列举出所有文件夹下的文件,然后用ReadFile之类的函数读取文件内容,然后在内存中逐个字节地进行比较。开始运行时还好,可每次运行了几分钟后,硬盘速度突然变慢,而且CPU内核时间(红线)占用到100%。
这个时候,把我的程序退出来,CPU内核时间就会降下来,但从此以后,硬盘的速度就再也上不去了,复制一个50M的文件竟然要3分钟(之前是1秒钟)。
重新启动后,硬盘速度又会恢复,但如果再运行我那个程序,几分钟后,又会变慢。这还不算是最严重的,更严重的是,有时候在我的程序运行过程中,那块SATA硬盘突然“嚓”的一声,就停止转动了,系统也死机了。这个时候,即使按“Reset”键,也无法重启了,只有按“Power”键关闭电源,再重新开机。请问大家,这倒底是怎么回事?不胜感激!(对了,我的系统是Windows XP,系统装在SATA硬盘上)

解决方案 »

  1.   

    硬盘变慢的问题已经解决了,是XP系统在硬盘出现六次CRC错误以后,会自动关闭DMA模式,从而导致硬盘读写速度变慢。通过注册表设置已经解决了。但硬盘停止转动的问题还是存在。硬盘应该是没坏的,因为我把那些文件在两块硬盘之间复制来复制去都没有问题,而唯独用我编的程序来比较两块硬盘上的数据时才会出现硬盘停转的现象。请高手指点。