• 关于Windows操作系统重定向


    在用C++做一个文件遍历的时候发现,当我遍历C:Windowssystem32文件夹时,获取到的文件数目和实际总是对不上。在通过他人帮助后了解到了重定向这个概念,我百度了一下,下面为粘贴内容。

    System32与SysWow64

    在C:Windows目录下,存在System32和SysWOW64两个文件夹,而让人迷惑的是:

    System32文件夹下存放的是64位DLL
    SysWOW64文件夹下存放的是32位DLL
    按照文件夹表面意思,System32应该存放32位dll,SysWoW64应该存放64位dll,微软为何要做出如此别扭的存放呢?
    这都是为了兼容32位Windows系统造成的。

    因为之前的32位机很多代码都是读写文件到System32目录下,而现在出现了64位机,如果按照System32存放32位dll,SysWoW64存放64位dll的方式,势必要修改以前的32位代码中的System32为SysWoW64,为了避免需要修改,干脆就采用了System32存放64位dll,SysWow64存放32位dll的方式。

    原文链接:https://blog.csdn.net/GG_SiMiDa/article/details/81328451

    现在问题的根源已经找到了,当我的程序在访问system32时,系统将其重定向了,导致获取到的文件数与实际对不上。那么该怎么解决这一问题呢?

    关闭重定向

    在MSDN搜素了一下,发现了几个函数可以关闭/开启重定向(关闭后不开启,可能会导致其他未知问题)。
    image

    我用Wow64EnableWow64FsRedirection简单实验了一下,发现确实好用啊!

    image

    关于windows重定向暂时了解这些,之后会进行补充。代码地址为不要点这里啊喂 感兴趣的同学可以参考一哈。

  • 相关阅读:
    4.12 活跃性
    4.13 ReentrantLock
    异步模式之生产者消费者
    同步模式之保护性暂停Guarded Suspension
    android 学习
    android 学习
    android 学习
    android 学习
    android 学习
    android 学习(开课博客)
  • 原文地址:https://www.cnblogs.com/ldl-1/p/15257760.html
Copyright © 2020-2023  润新知