欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

Windows Vista RTM BUG?

今天同事反映,我们内部开发的自动化测试平台的一个案例驱动模块在 Windows Vista RTM 机器上发生了一个奇怪的现象,同样的代码在其他的Windows 2000、XP、Server 2003、Vista SP1 上面均工作正常,但是在 Vista RTM 系统上面没法工作。

问题现象是:

  • 我们首先使用 CreateDirectory API 创建一个目录
  • 然后对这个目录使用 FSCTL_GET_COMPRESSION 控制码设置NTFS压缩属性
  • 然后在这个目录下面建立子目录
    • 由于父目录已经设置了压缩属性,因此子目录也继承了压缩属性
  • 对子目录使用 FSCTL_GET_COMPRESSION 控制码取消NTFS压缩属性
  • 结果发现在 Windows Vista RTM 机器上面取消子目录 NTFS 压缩属性的时候 DeviceIoControl API 返回成功,但是实际结果是没有被解除压缩属性。

我把这段代码抠出来写了一个小程序,在下面的操作系统上均进行了试验:

    • Windows 2000 SP4
    • Windows XP SP1
    • Windows XP SP2
    • Windows XP SP3
    • Windows Server 2003 SP1
    • Windows Server 2003 SP2
    • Windows Vista RTM
    • Windows Vista SP1

发现只有 Windows Vista RTM 系统有这个现象,其他系统均是正常的。而且发现,如果设置压缩属性完成以后,把进程退出,然后再启动一个新的进程用于取消压缩属性,也可以达到预期的效果。但是如果操作是在同一个进程里面,那么问题就肯定出现。

鉴于只有Windows Vista RTM 有这个现象,难道是 Windows Vista RTM 的 BUG?

备注:

  1. Windows Vista 已经关闭了UAC
  2. 系统是一个干净系统,没有安装任何的第三方软件
  3. 登录帐户隶属于 Administrators 组,且机器没有加入域
  4. 使用资源管理器做同样操作没有这个现象

由于 Microsoft 没有公布非常详细的 Windows Vista SP1 Changes Log,因此我只能猜测是 Windows 的 BUG 了。但是为啥资源管理器不受影响呢?抽空debug一下看看,也许就知道具体原因了。

最后,还是强烈建议升级到 Windows Vista SP1,不仅仅是改善了性能,在兼容性方面也有很多修正和改善。

已发表 2008年11月11日 12:02 作者 smallfrogs

评论

# re: Windows Vista RTM BUG?

2008年11月12日 17:59 by Jerry Luo

我觉得Vista真的很不错,至少我打了SP1补丁以后,系统稳定性明显提高了,不知道微软以后会不会出SP2,SP3...因为我知道WIN7就要出来了55555...

# re: Windows Vista RTM BUG?

2008年11月13日 17:53 by youyang

Vista SP2已经开始Beta了

该帖子已禁止评论