ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

控制Wow64重定向

2021-04-25 23:03:30  阅读:243  来源: 互联网

标签:控制 Wow64 HANDLE 重定向 redirection OldValue NULL hFile


参考:https://blog.csdn.net/karlxzy/article/details/42170419

 

在默认情况下,64位环境运行32位程序,会启用重定向,

比如 调用CreateFile时,系统会把system32文件夹重定向到Syswow64等等。


但是有些时候需要访问system32文件夹的时候就需要关闭重定向。

MS已经提供了一组函数用来控制重定向:

Wow64EnableWow64FsRedirection
Wow64DisableWow64FsRedirection
Wow64RevertWow64FsRedirection


用法在MSDN里面有DEMO:

 

  1.   #define _WIN32_WINNT 0x0501
  2.   #include <Windows.h>
  3.    
  4.   void main()
  5.   {
  6.   HANDLE hFile = INVALID_HANDLE_VALUE;
  7.   PVOID OldValue = NULL;
  8.    
  9.   // Disable redirection immediately prior to the native API
  10.   // function call.
  11.   if( Wow64DisableWow64FsRedirection(&OldValue) )
  12.   {
  13.   // Any function calls in this block of code should be as concise
  14.   // and as simple as possible to avoid unintended results.
  15.   hFile = CreateFile(TEXT("C:\\Windows\\System32\\Notepad.exe"),
  16.   GENERIC_READ,
  17.   FILE_SHARE_READ,
  18.   NULL,
  19.   OPEN_EXISTING,
  20.   FILE_ATTRIBUTE_NORMAL,
  21.   NULL);
  22.    
  23.   // Immediately re-enable redirection. Note that any resources
  24.   // associated with OldValue are cleaned up by this call.
  25.   if ( FALSE == Wow64RevertWow64FsRedirection(OldValue) )
  26.   {
  27.   // Failure to re-enable redirection should be considered
  28.   // a criticial failure and execution aborted.
  29.   return;
  30.   }
  31.   }
  32.    
  33.   // The handle, if valid, now can be used as usual, and without
  34.   // leaving redirection disabled.
  35.   if( INVALID_HANDLE_VALUE != hFile )
  36.   {
  37.   // Use the file handle
  38.   }
  39.   }


 

 

 

标签:控制,Wow64,HANDLE,重定向,redirection,OldValue,NULL,hFile
来源: https://www.cnblogs.com/kuangke/p/14702551.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有