32位进程在64位系统中的文件重定向
来源:互联网 发布:淘宝开店申请要多久 编辑:程序博客网 时间:2024/05/16 05:23
最近遇见了一个问题,如下:
一个32位进程A,通过调用如下代码浏览文件,
OPENFILENAME ofn; // common dialog box structureTCHAR szFile[MAX_PATH * 100] = { 0 }; // buffer for file name// Initialize OPENFILENAMEZeroMemory(&ofn, sizeof(ofn));ofn.lStructSize = sizeof(ofn);ofn.hwndOwner = NULL;ofn.lpstrFile = szFile;// Set lpstrFile[0] to '\0' so that GetOpenFileName does not // use the contents of szFile to initialize itself.ofn.lpstrFile[0] = L'\0';ofn.nMaxFile = sizeof(szFile);CString sFilter;AppendAllFilesFilter(sFilter);ofn.lpstrFilter = sFilter.GetBuffer(0);ofn.nFilterIndex = 1;ofn.lpstrFileTitle = NULL;ofn.nMaxFileTitle = 0;ofn.lpstrInitialDir = NULL;ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT | OFN_EXPLORER;// Display the Open dialog box. int index = 0;AUTO_RESTORE_CURWORKDIR;if (GetOpenFileName(&ofn) == TRUE){CString sDir = ofn.lpstrFile;}
在选择框中,选择我的电脑,然后右键--“管理”,提示找不到文件。
做如下实验,启动64位notepad.exe。执行同样的操作就可以打开,32为notepad.exe却不行,看来与wow有关系。
用procmon过滤64位的notepad.exe发现他是启动了C:\Windows\system32\CompMgmtLauncher.exe 进程,然而SysWOW64下却没有这个文件,原因很明显了。
然后用promon过滤32位的notepad.exe发现 ,他在寻找C:\Windows\SysWOW64\CompMgmtLauncher.exe时候失败,SysWOW64下没有这个文件。
我们的32位进程也是这样,所以使用下面代码关闭重定向
PVOID oldValue = 0;BOOL disableWow64 = FALSE;disableWow64 = DisableWowFsRedirection(&oldValue);//file operationif (disableWow64)RevertWow64FsRedirection(oldValue);
再次尝试,发现可以工作了。
阅读全文
0 0
- 32位进程在64位系统中的文件重定向
- 64位系统重定向
- 32位系统函数重定向方法
- 64位系统下文件重定向
- Installshield 64位操作系统下拷贝文件,如何重定向到32位的系统文件夹下
- Delphi 禁用x64位系统文件重定向功能。
- *c#在64位上编写32位程序时注册表重定向的问题解决办法**
- Windows 64位系统下32位进程调用64位进程中的函数
- 关于32位程序在64位系统下运行中需要注意的重定向问题(有图有真相)(***)
- 64位系统下System32文件系统重定向
- 64位系统下文件重定向和注册表重定向
- C++ 32位程序枚举64位系统注册表子项,含关闭重定向和提权
- C++ 32位程序枚举64位系统注册表子项,含关闭重定向和提权
- Windows 64位操作系统的重定向
- [问题记录.WinDbg]在64位系统上抓取32位进程的dump
- 如何判断当前进程是在32位/64位系统上运行
- 32位系统无法运行64位系统安装文件
- 在32位电脑系统上装64位系统
- Flent的使用及遇到的问题汇总
- linux mount命令的用法详细解析
- 宏定义DEBUG()代替printf()
- 如果编码不是为了好玩那将毫无意义
- 463. Island Perimeter
- 32位进程在64位系统中的文件重定向
- python查漏补缺一
- Android移动开发-使用HttpURLConnection实现多线程的下载
- MapReduce编程-join算法实现
- 网络设备流量及性能监控的实现
- vue中简单的无限树形结构tree.vue
- retrofit2的参数详解
- StringBuffer中的容量函数
- 二手房买卖中定金的双倍返还原则