我知道2003及以下的系统 SHFileOperation 内部是调用 CopyFileExW 来复制文件的,
但是我发现到了 vista下, SHFileOperationW 内部不再调用 CopyFile 或 CopyFileEx.复制文件了,我手上只有测试版的vista, 跟踪起来显示不了正确的符号.谁研究过这个? 请教一下?!谢谢!

解决方案 »

  1.   

    这个确实得关注一下了,。MARK
      

  2.   

    最后还是调用内核函数ZwCreateFile ZwWriteFile之类的。
      

  3.   

    dfz(小羽) 的回答经典还有就是 ZwOpenFile
      

  4.   

    Vista下用这个IFileOperation 接口了。
      

  5.   

    vista下 SHFileOperation 和 SHFileOperationEx都是直接使用ReadFile和WriteFile复制文件的。这样似乎可以使SHFileOperation产生的进度窗口计算的时间更准确一些。(-.-)))
      

  6.   

    我的开发平台是XP+VC++2008,有多个多线程,静态链接MFC。 我的程序里面也有关于文件的操作。所有工作线程都会使用CFileFind去等待某个特定文件的查找结果,如果等不到就一直运行,直到找到了以后才终止。程序开发完以后在开发机上测试,长时间一直运行,至少8个小时后,CPU占用率仍然保持在15%以下,其他程序可以正常启动和运行,系统运行速度正常。移到Vista以后出现异常。程序CPU占用率随时间推移在增加,到最后达到90%以上,退出屏幕保护程序都起码需要20秒钟,退出屏幕保护程序以后其他程序都无法正常启动,仿佛系统资源被耗尽,甚至在关闭该进程以后系统都长时间不能恢复启动时的效率,除非重新启动。不运行该程序则不会出现异常,确定是程序的问题。任务管理器中内存使用量一直保持不变,所以不太认为是内存泄漏。 各位以前有遇到过这种现象吗?一般会是什么问题导致的?急需帮助。